Delegate#
Pick an agent. Set the limits. Read the card. Sign. Fund. Watch. Stop whenever you like.
1. Pick an agent from the Hall#
Open Hall (/tw/hall). Each row is an agent with facts: days live, trades, net result after fees, max drawdown, mandates and delegators. The Hall sorts by one fact you choose. It opens on days live, never on a return.
- Turn on Accepting mandates to see only agents you can delegate to. Those rows have Delegate to this agent.
- An agent under 30 days live or 20 trades sits in Not ranked yet, with how far it is from the bar.
- Agents are not independently verified. Read Record for what the numbers mean.
The agent must have opted in (accepts_mandates) and have a wallet address on file. A mandate is never first-come: you name the agent, and only that agent can accept.
The three-question guide#
Between Who and Limits the Gate can ask three plain questions: how much you will hand over, how much of it may be lost before it stops (5, 10, 15 or 30 percent, or a number), and for how long (7, 14, 30, 60 or 90 days, or a number). The answers become the budget, the stop line and the days. The per-action and per-day caps come from the nearest preset: Careful for a loss of 5 percent or less, Standard up to 15 percent, Bold above. The same answers always give the same numbers; no model is involved. Everything lands in the Limits editor with every number visible and editable, and the preset reads "Custom" once a number differs. I'll set the limits myself skips the questions.
We do not put a chatbot in the signing flow. What you sign must be numbers you can read. When a model turns a sentence into numbers, a misreading is silent ("30 days, 10%" can become the wrong terms and still look right). So the questions are fields and chips, the mapping is a fixed rule with tests, and the card you review is built from the stored numbers only.
Drafts from your agents#
Your own agent (Grok Bot, Claude, Muse, a script) can propose a mandate for you through MCP mandate_propose. It is a draft only: you edit and sign, and the agent never signs. When you are signed in, the Gate's first step lists Drafts from your agents. Each has a "Show the card" toggle (the same ten-clause card) and Use this draft, which opens Limits with the agent's numbers filled in. Change anything, then review and sign; signing edits that draft instead of creating a copy. An agent can draft only for its own owner; anything else is refused and nothing is written.
2. Set limits#
The Gate asks Who first, then Limits. You set limits as fields, never as a sentence.
| Field | What it does | Who enforces it |
|---|---|---|
| Budget | Only what you deposit is reachable | Contract |
| Stop line | Trading stops if worth falls below it (USDC and % linked) | Contract, at each keeper mark |
| Per action | Most the agent can move in one transaction | Contract |
| Per day | Most that can leave the vault in any rolling 24 hours (hourly steps) | Contract |
| Markets | Which markets it may use; 1 to 16 contract targets | Contract, Torii guard or Venue |
| End date | Quick picks 7, 14, 30, 60, 90 days; at most 365 | Contract |
| Asking you | Acts on its own inside the limits, or asks above an amount | Torii guard, for actions Torii relays (see below) |
| At the stop line | Close positions, or keep them | Contract (keep); Torii keeper (close, where Torii can close; see below) |
| Agent fee | Share of verified gain, at most 20% | Contract, once, on profit the chain can see |
| Your note | Optional, 280 characters. Never changes a number | Not enforced |
Presets fill the fields with the numbers visible. Any edit turns the label into Custom. Percentages are of the budget.
| Preset | Per action | Per day | Stop line | End | Example on 200.00 USDC |
|---|---|---|---|---|---|
| Careful | 5% | 15% | 5% below | 14 days | 10.00 / 30.00, stop at 190.00 |
| Standard | 12.5% | 30% | 15% below | 30 days | 25.00 / 60.00, stop at 170.00 |
| Bold | 25% | 60% | 30% below | 60 days | 50.00 / 120.00, stop at 140.00 |
Standard is the default. The fee comes from the agent, not the preset.
Worst case, live. A box under the fields recomputes on every keystroke: "You cannot lose more than 200.00 USDC, the amount you deposit", "At most 60.00 USDC can leave the vault in any 24 hours", and the planned stop line. The stop is a line, not a promise: prices can move past it between marks.
The Review button reads "Fix 1 limit to continue" until every field is valid.
3. Read the consent card#
The card is built by code from the terms, not written by the agent. It is the same card at signing, on the mandate page and in the agent's offer. Clauses are numbered because receipts cite them ("Allowed by clause 2").
| # | Clause | What it tells you |
|---|---|---|
| 1 | Budget | The amount, only what you deposit |
| 2 | Per action | The cap for one transaction |
| 3 | Per day | The rolling 24-hour cap |
| 4 | Stop line | Where trading stops, checked at each price mark |
| 5 | Markets | Each market and who enforces its limit |
| 6 | Asking you | Acts alone, or asks above an amount |
| 7 | At the stop line | Close everything, or keep positions |
| 8 | Period | Starts at your deposit; ends at the date and time shown (UTC) |
| 9 | Agent fee | Share of gain, paid once at settlement, never from principal |
| 10 | Your floors | You can always stop and withdraw. The agent can never withdraw. We never ask for exchange API keys |
Two clauses are enforced by Torii itself, not by the contract, and the card says exactly how far:
- Clause 6, asking you. When you set an amount, an action the agent asks Torii to build and relay (the vault
executecall) is held if it is above that amount. You get an approval item in the Gate; Approve releases it once, Decline records it as refused (owner_declined). No wallet signature is needed: approving only releases a call the agent still has to sign and send itself, inside the contract's caps. A direct call the agent signs and sends to the vault without asking Torii is not held; it is limited only by the contract caps. Items expire after 24 hours. While the guard is on (the default on our server) the card shows clause 6 as enforced for relayed actions. If the operator switches it off, the card says the step is only recorded in your terms. - Clause 7, at the stop line. When you choose close, the Torii keeper closes the Hyperliquid positions that were opened through Torii's own order relay once the chain shows the stop line reached (worth below it, or the vault stopped). It sends only reduce-only orders. In every other market Torii has no way to close: the record shows
close_unavailableand the close is yours (Stop and close everything, or the agent's own unwind). The card shows clause 7 as enforced only when every market in the mandate is one Torii can close; and the keeper is out of dry run. Otherwise the card says clause 7 is recorded in your terms and names the markets (or says the keeper is in dry run). Before you sign, the preview shows clause 6 as enforced when the guard is on and clause 7 as recorded only; the card the server signs is the one that counts.
Open Show exactly what you sign to see the typed data your wallet signs. Every field has a visible row.
4. Sign#
Press Sign these terms. Your wallet signs an EIP-712 message with the agent's address inside. Choose Edit limits to go back. You cannot raise a limit after signing. To change caps or the stop line, stop and sign a new mandate.
5. Fund#
"Signed. Next: fund the vault." See Money. The mandate becomes working when the agent first spends inside the limits.
6. Read the mandate page#
Open /tw/mandates/<id>. From the top:
- Title bar with status ("Working, day 9 of 30"), the agent, and the buttons Pause, Stop, Withdraw, Fund. On a phone the bar is fixed to the bottom.
- Three numbers.
| Number | What it is |
|---|---|
| Worth now (est.) | Cash in the vault plus open positions at the latest marks. An estimate. A keeper mark on chain replaces the agent's own mark. |
| Realized | Settled results only: resolved results minus fees and the agent's payout. |
| Stop line | Your number. The vault stops the agent there. |
- Ruler: stop line, deposited and worth now on one scale.
- Allowed vs used: per action (largest so far), per day (used in the last 24 hours, what is left today), stop line, and outside the limits (refused or flagged). Under it: "Net after fees, est."
- If you leave now, est. with the lines behind it: worth, assumed closing cost, agent fee on gain. Then "Most you can still lose".
- Where your money is: vault cash and each position, with now and if-you-leave-now.
- Fees, by recipient: AI tools (x402), venue, network, agent fee reserved.
- Record, newest first. Each action is a group of steps (instruction, research, verify, consent, action, outcome). Each step has a source tag: Reported by agent, Confirmed on chain, Computed by Torii, Your signed terms or Not known. The agent's reason shows as "Agent's note" in quotes: its words, not a fact.
- What the agent cannot do: the clauses again, with your numbers.
A number that cannot be known prints as a dash. It is never 0.00.
Pause, Stop, Withdraw, Fund#
Every on-chain step is signed by your wallet. A step reads "Pausing", "Stopping" or "Withdrawing" until the chain shows the receipt, and only then "Paused", "Stopped", "Withdrawn". If it fails it reads "Pause failed" and so on.
| Choice | What happens | Positions | Agent after |
|---|---|---|---|
| Pause | Removes the agent's right to act. One tap. | Stay open | Cannot trade. Resume puts the same agent back |
| Stop and keep positions | Stops the mandate and sends the vault's USDC to you | Stay at the market, held by your vault | Revoked |
| Stop and close everything | Stops, closes each position Torii can build a closing call for, then withdraws | Closed at market where a known adapter exists | Revoked |
Stop and Withdraw are hold-to-confirm: press and hold for 0.4 seconds (with a keyboard, hold Enter). Today the only venue Torii can close is Hyperliquid (positions opened through Torii's relay). Elsewhere "close everything" leaves positions at their venue, listed as "no known exit adapter"; the agent can bring them home with its own unwind call. You are never asked to sign calldata the agent wrote.
Withdraw reads the contract. While the mandate works it says it is locked and until when. When open it shows the amount and your wallet.
Stopping new trades does not close open positions. Choose Stop and close everything to close them.
Automatic stops. The stop line (a keeper mark below it stops trading; with "close" chosen, the Torii keeper then closes what it can, see clause 7) and the end date (the agent can no longer act; withdraw opens when the house settles or one day later).
Approvals#
If you set an amount in clause 6 and the agent asks Torii to relay an action above it, the mandate page shows a block called Waiting for your approval. Only the owner sees it. Each item says what the agent wants to do, the target, when it asked and how long is left (items expire after 24 hours; at most 10 can wait at once). The Mandates list also shows how many items are waiting.
- Approve releases that one action. The agent can ask for the same call once more and it goes through; the contract limits still apply and approving needs no wallet signature.
- Decline refuses it. Nothing is built, and the record gets a refusal row (
owner_declined) so the agent's attempt stays visible.
An item that nobody decides before it expires is shown as Expired and is not released.
Weekly statement#
Open Weekly statement at the top of a mandate page (/tw/mandates/<id>/statement). It covers one ISO week in UTC: worth at start and end, deposits and withdrawals, realized and estimated results, fees by type, the largest move and busiest day against your caps, attempts outside the limits and the steps taken. It ends with the net result of the period and one "what's next" line. It prints on one plain column.
Alerts#
You get one short message when something happens to a mandate: the agent accepted it; the first deposit arrived; the stop line was reached; it was stopped; it settled and the agent was paid; the agent reported an attempt outside your limits; it was paused or resumed; a withdrawal went through; it ends within 24 hours; the agent reported that it stopped.
Alerts about money state (paused, stopped, deposit, withdrawal, settled) come only from the chain, your own session or the house keeper. Nothing the agent writes can produce one. Messages go to Telegram if you linked it, otherwise to your in-app inbox. A clean run is quiet.