XerisLock Docs
How the locker contract works, the schedule shapes you can pick, and what happens after you sign.
Overview
XerisLock is a non-custodial token escrow vault on the Xeris Network. You send tokens to the locker contract along with a schedule describing how they should release; the contract holds custody and emits tokens to the beneficiary when each cliff/segment vests. Once tokens are escrowed, nothing — including the team behind XerisLock — can pull them out except the beneficiary, per the schedule you signed.
Schedule kinds
Time lock
Amount unlocks atomically at a single moment. Useful for partner payouts, delayed transfers and team commitment windows.
Linear vesting
Amount unlocks continuously between startAt and endAt. Vested = total × (now − start) / (end − start). Common for treasury releases.
Cliff schedule
Nothing unlocks before cliffAt. At the cliff, the proportion that would have vested linearly between start and cliff releases all at once, then linear from there to endAt. Standard equity-style 4y / 1y schedule fits here.
LP lock
Same shape as time, but the token is expected to be a XerisDex LP token. Used to prove pool liquidity is committed for a fixed window.
Contract interface
The locker contract id is lock_program. All transactions are submitted as ContractCall instructions — the same opcode XerisDex uses.
Escrows tokens from the caller and creates a Lock record. Schedule bytes: u8 kind + four u64 LE timestamps (unix seconds).
Releases vested-but-unclaimed amount to the beneficiary. Idempotent — calling again with nothing claimable is a no-op.
Owner-only, only if revocable. Returns unvested tokens to the owner. Already-vested tokens remain claimable by the beneficiary.
Owner-only. Reassigns who can claim future vesting and unclaimed past vesting.
Public read endpoint
State is exposed at /api/node/contract/lock_program and the canonical shape is { contract: { state: { Lock: { locks: LockRecord[] } } } }. Every lock is public by design — this powers the explorer, embed widgets and per-token aggregation pages.
Embedding a lock
Every lock has a portable proof URL at /embed/[id]. Drop the iframe on your landing page and it renders a live card that updates as the schedule progresses. The snippet is generated for you from the lock detail page → Embed button.
<iframe src="https://lock.xerisweb.com/embed/<LOCK_ID>"
width="100%" height="240" frameborder="0"
style="border-radius:2px;border:1px solid rgba(255,255,255,0.1)"></iframe>Fees & audit
XerisLock is currently unaudited and free to use on the Xeris testnet. Once the locker contract clears its audit, this page will list the audit firm, the report URL and the live contract id.