Every other wallet in this project is a private key with unlimited authority over what it holds. This one is not. Its spending is delegated through an Altana session: an allowlist of contracts, a cap per day, and an expiry — enforced by the account contract, so a call outside the scope reverts before it runs. The session's key is registered in the on-chain KeyStore, which means you do not have to take any of this on our word.
A session that performs an allowed call proves the key works. It says nothing about whether the limits are attached. So both were run:
approve() on $U, signed by the session key, not by the admin key:transfer() of $U to an address of our own choosing, which is the exact move a stolen session key would make. The account rejected it with UnauthorizedCall. There is no transaction to link, because it never became one.Revocation is one admin-signed Altana intent, and it takes effect within a block — the entry above stops validating and the account contract refuses the session's next call.
Revoke it here. The button below ends a session from this page. Two locks make that safe to publish: the admin key that signs is a secret on the worker (never in this page, never in the source), and the worker signs only when the request carries the operator's token. A public endpoint that could end the session without one would be an off-switch any stranger could press — a denial-of-service wearing the costume of a safety feature — so without the token the answer is 401 and nothing is signed. Every revocation fired from here is recorded with its transaction, below the live state, so the control is a fact you can check on the chain.
The same revocation from the operator's machine, without the page: node scripts/altana-session.mjs --mainnet --revoke --confirm. Both paths sign with the same admin key and land the same on-chain call.
The visibility is the part that has to be public, and it is: anyone can call getKeys() and isValidKey() on the KeyStore and get the same answer this page shows, without asking us.
Raw: agent.brainonbnb.com/session · source at /source (scripts/altana-session.mjs, worker-agent/session.js).