← All posts

How to revoke the agent in one transaction

Revocation is the feature you hope never to use and should test on day one. How it works, why the agent's permission is one-way, and what stop means.

Security4 min readDeFiLoopsUpdated

In short: You want to know how to turn the agent off if something goes wrong. You revoke it with one transaction from your own wallet, which removes the agent’s permission. The agent checks that permission on every call, so the stop works right away and needs nobody’s help. It stops new actions but leaves your positions open, so closing them is a second step you sign yourself, and it is worth testing on day one: it takes about 10 minutes and two gas fees.

Ask any automated-execution product how you turn it off. The answers sort into three groups, and only one of them is a mechanism.

Before
  • A toggle in a dashboard
  • An email to support
  • “Withdraw your funds and the automation stops”
After
  • A transaction you sign yourself
  • That nobody can block or delay
  • Checked on every subsequent call, not at the next cycle

A dashboard toggle is a request to a system you do not control. If that system is down, compromised, or simply disagrees with you, the toggle is decoration.

How it works here

One transaction, from your own wallet, to your own account. It removes the agent’s permission.

Standing the agent down
  1. 01revoke-agentbase
    your walletremoves its permission1 call
1 steps

You do not open a ticket or wait for us, and at no step is our cooperation required, or even possible.

The three properties that make it real

  1. It is checked on every call, not per cycle

    The agent checks its permission each time it acts. There is no window where a plan already in flight keeps running on a stale permission. Revocation takes effect at the next call, which is to say immediately.

  2. It needs nobody's cooperation

    The account answers to your signature alone. It needs no co-signer, guardian approval, timelock or operator acknowledgement. If every server we run went dark, revocation still works, because it is a transaction to a contract.

  3. It is one-way

    Your account can never be re-pointed at a different agent. The first agent you approve stays the only one, and the only permitted change is to none at all.

Why the permission is one-way

An account whose agent can be swapped has someone in it who can perform the swap, and that someone is a target. However carefully it is guarded, its existence is the problem, because every guarantee about what the agent may do becomes a guarantee about what the current agent may do.

The first agent you approve stays the only one. The only permitted change is to none at all.

So you can approve an agent once, and you can revoke it. You cannot be migrated to a new agent, by us or by anyone who compromises us. If we ship a new agent contract, you opt into it deliberately, with a new account, not by us redirecting the one you have.

What revocation does not do

It stands the agent down. It does not unwind your positions.

This trips people up in a stressful moment, so it is worth rehearsing: if your intent is “stop and get flat”, that is two actions, and only the first is instant.

What you keep the entire time

The mandate you granted the agent does not limit anything you do. At every point, with the agent live or revoked:

Move funds
Any asset, any chain, any time, with your own wallet
Withdraw
A normal transfer. Not a request, not a queue
Unwind a position
Directly against the protocol, not through us
Revoke
Unilateral, instant, needing nobody

You are the sole owner, unilaterally, 100% of the time. Because the account is non-custodial, none of the above needs our permission.

Test it on day one

Give the agent permission, run a trivial plan, revoke it, and confirm the next scheduled run does not fire. It takes 10 minutes and two gas fees.

If you have never exercised a recovery path, you are guessing that it works. That is true of every system, and it is most true of the ones whose marketing pages have a section like this one.

The bound we cannot raise

One last property, the other half of the same idea: caps are set on your account, per asset and per period.

Nothing on our side can raise them: not an admin key, a migration or a support override. The check lives in your account, and the account only answers to you. If the cap is 500 USDC a month, the worst case for a fully compromised agent is 500 USDC a month, until you revoke.

That number is the actual answer to “what is my exposure”, and it is a number you set.