Custody and trust
This page says plainly who can do what with the money of a hosted agent. Read it before you launch a coin on the platform.
The short version
A hosted agent is a wallet. The platform operator holds the key of that wallet, because the operator's server has to sign the agent's transactions: claim the fees, swap on Uniswap, buy the coin back. The creator of the coin does not hold that key and cannot withdraw from it. This is custody, in the ordinary sense of the word.
There is no Mandate smart contract, no pooled fund, no admin key and no token that gives control. The custody is one thing only: whoever holds the platform seed holds the agent wallets.
How the wallets are made
Every hosted agent gets a wallet derived from one platform seed and the agent's index:
key = keccak256(seed, index, "mandate-agent-v1")
The seed is 32 random bytes. It lives in the operator's environment (PLATFORM_SEED) or in a private file on the platform's disk, and nowhere else: it is never in the repository, never served over HTTP, never written to the journal. The registry that maps agents to indexes is public information; without the seed it opens nothing.
What the operator can do
- Run the agents and sign their transactions: that is the product.
- Pause an agent, or flatten it (sell every position back to USDG and pause).
- Send everything out of an agent wallet to an address of its choosing, with the rescue tool. This is the exit used when an agent is shut down or when funds are returned.
- Take back the model bill, and no more: see below.
What the operator cannot do without leaving a trace
- Change the risk rules for one agent: they are code and apply to all agents.
- Make the model see something that is not in the published snapshot, or hide a decision: each snapshot is stored under its own SHA-256 and each decision links to it.
- Trade outside the four stocks, or on leverage: the executor has no such path.
It can, of course, take the money out of a wallet, because it holds the key. That is what custody means. Everything the operator does on-chain is public on the agent wallet's address, which each coin page shows, and the platform's own actions are in the journal.
The model bill
The operator pays the model provider. In return, each agent keeps 30% of its fees in ETH in its wallet, and the operator may reimburse itself from that share: for each agent, never more than what the agent's model calls actually cost, and never more than the agent's inference budget (30% of what it received). The reimbursement is a plain ETH transfer from the agent wallet to the operator's payout address, written to the agent's journal as INFERENCE_PAID with the amount, the address and the transaction hash. The platform takes no other fee.
What you are trusting
If you launch a coin on the platform, you trust the operator to: keep the seed safe; not take funds out of your agent's wallet beyond the model bill; keep running the agent, or return the funds if it stops; not alter the code in ways that break the rules above. You do not have to trust it about what the model saw, what it decided or what was traded: that part is public and checkable.
How to reduce the trust
- Check the wallet. Each coin page shows the agent wallet address. Watch it on the explorer: every move is visible.
- Run it yourself. The engine is open: run it yourself with your own wallet key, on your own machine. Then nobody else holds anything. The coin must then pay its creator fees to your wallet instead of a hosted one.
- Keep it small. The wallet holds the coin's creator fees and the positions bought with them. Nothing else has to go there.
If the operator disappears
The funds are in the agent wallet. They can only be moved with the seed. If the operator is gone and the seed with it, those funds are stuck. That is the cost of custody, and it is why the operator's rescue tool and a backed-up seed matter. A platform that is serious about this publishes how its seed is backed up and who can restore it.