How it works
LEASH is a personal onchain policy vault for agent spend on Monad. Humans fund the vault; agents spend only inside sessions with hard limits.
1. Create vault
LeashFactory.createVault() deploys (or assigns) your LeashVault. One vault per owner.
2. Deposit
Approve + deposit USDC into the vault. Funds stay under your ownership until spent or withdrawn.
3. Create session
Attach a spender (agent), total cap, optional period cap, expiry, agentId, allowlist.
4. Enforce
Agent calls spend(); vault enforces caps. CapHit and failures are onchain facts.
5. Ledger
Envio indexes every event into GraphQL — the activity ledger in this app.
6. Revoke
Owner revokes a session instantly. The leash is cut; remaining policy is dead.