leash block + RulesV1 doc) all hang off that one mint. Buyer and seller are capabilities layered on top of the same asset; an agent can do either, both, or neither at any time.
Although the asset is one thing, three keypairs are wired to it at run-time — the owner, the executive, and the optional operator. Read Identities before working through the lifecycle below if you haven’t seen that distinction yet; the rest of this page assumes it.
Lifecycle
- Create — mint a Core asset and attach an
AgentIdentityplugin in one tx. UsecreateAgentfrom@leash/registry-utils(see Create an agent) or the BYO equivalent (createCollection→create→registerAgentIdentity). - Read —
getAgentIdentityStatus(umi, asset)returns whether the identity is registered and the agent’s treasury PDA. The on-chain registration URI lives on theAgentIdentityplugin and points to off-chain JSON. - Run — to let an executive submit transactions for the agent, call
registerExecutiveonce per wallet, thendelegateExecutionper asset. The executive then signs CoreExecuteinstructions on the agent’s behalf. - Fund — call
setSpendDelegationper stable mint (USDC / USDT / USDG) the agent should be able to spend. Optionally pre-create every supported stable ATA in one shot withprovisionTreasuryAtasso wallets and faucets can target the treasury without an “ATA missing” round-trip. See Fund an agent.
Runtime surface
@leash/core—Agent,treasuryPda,deriveAgentTreasuryAddress,deriveAgentTreasuryAta, policy + receipt machinery.@leash/registry-utils—createAgent,getAgentIdentityStatus,registerExecutive,delegateExecution,setSpendDelegation,provisionTreasuryAtas,withdrawTreasury, plus registration URI resolution and ERC-8004 helpers.@leash/seller-kit/@leash/buyer-kit— capability layers over the same asset.

