From draft to agent
A draft is a description, stored and inactive. It becomes an agent only when the wallet's owner claims it. This page follows that hand-off end to end.
The review link
review_url is a private bearer link: anyone holding it can open the page, so give it to the user and nobody else. It opens Signo's Set up an agent page (https://app.signo.fi/agents/new?draft=…, the same page a hand-made agent uses) with everything the assistant drafted already in place: the trigger text, the behaviour (Notify or Prepare), the action if there is one, and the same summary line the owner would get if they had typed it and pressed Check. Nothing about the page says "external draft" beyond the fact that it is filled in.
Claiming an agent
- Connect. Press Connect wallet. If the draft named a wallet, only that wallet can claim it; a different wallet is rejected and the page offers the wallet picker. If no wallet was named, the first wallet to sign owns the agent. While the wallet session is restoring, the button shows Loading wallet….
- Link Telegram. Agents deliver on Telegram, so the page asks for a link if that wallet has none.
- Edit, if wanted. The owner can change the request or switch Notify to Prepare. An edit compiles a fresh draft for the same wallet before the signature, so the signature always covers what is on screen.
- Sign once. Set up agent asks the wallet to sign a short message that names the draft, the reviewed configuration, the delivery target and an expiry. The signature is checked against the owner wallet; connecting an address alone cannot claim a draft. Activation binds the draft to that wallet in the same step, so two wallets cannot both claim one draft.
The agent then appears in the owner's Agents list and runs like any other. A claimed link, opened again, says the agent is already created.
Claiming a permission
A permission draft opens the same Set up an agent page, with the condition and the action already checked and Execute selected. The owner sees the exact terms the assistant drafted: the trigger, the action, the per-execution cap and lifetime budget before fees, the separate Shield fee rate, and the expiry. The owner can lower the limits and the expiry, but not change the condition or the action; that needs a new draft. Signing registers the permission on the draft's chain, X Layer (196) or Arbitrum One (42161), from the owner's wallet. If the condition is already true, the first hourly check can fire; Start after Pause also re-arms it without requiring a new crossing. Explain this before the owner signs. See Execute check and retry rules. From then on the agent can act within those terms without asking, and the contract cancels any firing that would breach them. The owner can revoke at any time. Until that signature, the proposal is a stored description with no authority; the assistant can only ever create the description.
Expiry and errors
Drafts and permission proposals expire after 72 hours. An expired, used or unknown link shows a one-line page with a way to set up a new agent. The draft tools answer with the reason when a request cannot be drafted: an ambiguous condition, an unsupported action, an unknown asset symbol (with the accepted list), or a lifetime budget below the per-execution cap (400 invalid_budget). cap_per may equal the budget; the 0.1% fee comes on top, with a rounded-up fee buffer included in the registered lifetime cap and token approval. Execute uses approved tokens, not native coins: wrap OKB to WOKB on X Layer or ETH to WETH on Arbitrum before using one as a transfer, supply, repayment or swap input. A swap that buys the chain's own coin instead drafts WOKB or WETH as its output, which the review page names before the owner signs. Keep native coin for the wallet transactions' gas. The wallet does not need to hold the budget when the permission is drafted; each firing checks the balance it needs.
What the three levels mean in practice
- A Notify agent watches and tells; it can never move funds.
- A Prepare agent watches and, when it fires, builds a fresh unsigned plan. Telegram delivers the review link; the owner opens it in the app and signs in their wallet, not inside Telegram. Every transaction is a separate signature.
- An Execute agent acts on its own, and only inside a signed permission. That is the one level where the owner's signature happens before the firing rather than after.