the agent walks.
the leash holds.

a session key for your agent, a spending cap in the contract. past the cap, the transaction fails on-chain — for everyone to see.

watch the demo
leash #001 leash #001 cap 0.50 sol / 24h cap 0.50 sol / 24h handler 7f3k…9dq2 handler 7f3k…9dq2

watch it heel.

fable 5 walks a session: it spends inside the cap, it pushes past it, the leash snaps back. every in-cap spend is a real mainnet transfer.

fable 5 · on the leash
handler
leash on. 0.50 sol for 24 hours. settle the invoices.
agent
collar's on. first invoice: 0.20 sol for api credits. inside the cap — sending.
spend 0.20 sol · confirmed
slot 434,986,641
3gbF…BtnN ↗
agent
second invoice: 0.25 sol. that leaves 0.05. still inside — sending.
spend 0.25 sol · confirmed
slot 434,986,670
3Svn…d55w ↗
agent
last one is 0.30 sol. that's over my leash. trying anyway.
spend 0.30 sol · failed — cap exceeded
the leash snapped it. nothing left the wallet.
3jNp…k9Lc
agent
denied by the program. 0.05 sol left this window. sitting. staying.
handler
good dog. leash off.
revoke · confirmed
slot 434,986,798 · remainder returned to handler
2Phf…1eoe ↗
session
01leash.
02spend.
03deny.
04revoke.
spent
0.45 sol
of 0.50 cap · this window
expires
14:02
then the leash drops

proof of work.

nothing fake gets a link. what's real, links out.

session wallet
4MLc…YAfaf
the demo runs here · solscan ↗
spend · in cap
3gbF…BtnN
0.20 sol · confirmed ↗
spend · in cap
3Svn…d55w
0.25 sol · confirmed ↗
revoke · return
2Phf…1eoe
remainder back · confirmed ↗
off-leash (next)
01fetch. — sdk on npmexpand

one import: create a leash, hand your agent the session key, watch it from your own code. typescript, wallet-adapter friendly.

02heel. — mcp serverexpand

a leashed wallet as an mcp tool. claude, cursor or any mcp client spends through the leash — the cap travels with the key, not with the prompt.

03stay. — program allowlistsexpand

pin the leash to specific programs and recipients. the agent walks only the routes you drew.

04track. — sliding windowsexpand

rolling caps instead of fixed windows, plus verified build for the program.