Ava
← updates

Your agent gets its own wallet, and a stop button that survives a restart

Every agent session can now hold its own funded wallet, bounded by limits you sign once, and a revocation you issue is now permanent rather than lasting until the next deploy.

what you can do now

  • Give Claude Code, Cursor or Codex a wallet of its own, scoped to that session, so one compromised agent cannot reach another's capital.
  • Sign a standing envelope once and have every later action checked against those bounds by code instead of by you approving each one.
  • Revoke an agent's authority and have that stick permanently, including across a restart or a deploy.
  • Read what Ava will actually execute today as JSON, already split into executable and not, at getava.xyz/capabilities.json

what still does not work

  • No scheduler triggers rotations yet, so a standing envelope is a real authorization that produces no activity on its own. Do not treat it as a running strategy.
  • Swaps and bridges are implemented but no route is executable: the registry reports every one of them as not reachable, and it will keep saying so until a route is bound with a funded wallet.
  • Lending is live on four routes only: Aave v3 on Avalanche, BNB and Monad, and Morpho Blue on Base.

The gap this closes is the one everybody with a coding agent already feels. Your agent ships the refactor, fixes the failing test, books the flight. You would still not give it your card.

Not because it is incompetent. Because nothing it says is evidence. It reports "done" the same way whether it succeeded, failed, or did the work twice.

A wallet per session is the first half of the answer. Each agent session gets a real key held in Turnkey, which the agent itself never sees. The blast radius of a bad instruction stops at that session.

The second half is the mandate. You sign the bounds once: how much per move, how much in total, which venues, which chains, until when. Every later action is checked against what you signed rather than against what the agent claims you wanted.

curl -sX POST https://api.getava.xyz/v1/users/session -d '{}' curl -sX POST https://api.getava.xyz/v1/users/me/wallets/provision \ -H "authorization: Bearer $TOKEN" -d '{"family":"evm"}'

Revocation is the part that changed this week and matters most. Ava has always told you that revoking is terminal, with no un-revoke. Until now the record of that lived in memory, so it silently expired on the next deploy: you pressed stop, believed the agent was stopped, and stopped watching. It is now durable, and there is a test that opens a real database twice to prove it.