Account
Account and watchlist
An email sign-in, an optional wallet link and a watchlist. What each one does today, and what it does not.
You do not need any of this to scan
Scanning is a permissionless read: no wallet, no signup, no account. Everything on this page is optional, runs on Stellar testnet only, and starts at Sign in.
Sign in with your email
- Open Sign in and enter your email address.
- Press Email me a code. A one-time code is sent to that address. It is valid for a limited time and works once.
- Enter the code. The page then reads Signed in as and your address.
Your email is your account. There is no password. If the code cannot be sent, the page says so and names no cause, because it does not know one. Signing in with email cannot move XLM. Only a signature from your own wallet, on a screen that says what it moves, ever can. Sign out is on the same page.
Link a wallet, if you want to
You can add contracts to your watchlist with the email sign-in alone. A linked wallet is needed only for autopilot and allowances.
To link one, set Freighter to testnet, press Connect Freighter, then Link this wallet and approve the signature. What you sign is a sign-in challenge: a transaction with sequence number 0, which the network rejects. It moves nothing and grants nothing: it is not a payment and it is not an allowance. If Freighter ever asks you to sign a payment on that page, decline it.
Unlink sits beside each linked wallet on the same page. Unlinking does not revoke an allowance. It stays on the chain until you revoke it or it expires, and the page links the allowance page for that. A wallet that a watched contract names as its payer cannot be unlinked; the page says so without naming the contract.
The watchlist
Scan a contract in the scanner, then press Add to watchlist. It is added with the same data keys the scan used. A watchlist belongs to a signed-in session; signed out, the button answers Not added and links to sign-in. Your list is at Watchlist, and each row has a Remove control.
A watchlist holds at most 50 contracts per account. The API refuses a 51st and stores nothing; the page then says only that the API did not accept the request.
Rows are ordered by binding expiry: the entry that expires first, which is usually the shared code entry rather than the instance. Health is one of three states, and undetermined is never shown as healthy. A scan without data keys covers the instance and the code entry only, and absence is not health.
What a row says today
As of 2026-11-05, on origin/main at 9ef4094: nothing in the repository writes an engine observation for a watched contract. So every row's health reads undetermined, with the line Not checked by the engine yet. The expiry beside it is this browser reading the chain now. That expiry is the scanner's read, taken when you open the page. It is not an engine check, and the row says so. If this browser's own read of the chain did not complete, the row reads Not scanned yet. instead.
When an engine observation exists, a row shows the engine's last scan with the ledger it was read at beside it, not a reading taken now. Until then, a watchlist row tells you what the scanner would tell you, kept in one place.
Autopilot and the allowance
As of 2026-11-05, on origin/main at 9ef4094: the Autopilot column shows the setting the API holds for each row, and nothing more. No control on this site turns autopilot on, and no step on it grants an allowance.
The allowance page reads a wallet's allowance and can revoke one. Its Revoke allowance button stays disabled, with the reason printed beneath it, until the engine's spender address is published. An allowance lets the engine pull native XLM from your account, only up to the amount you approved and only until the ledger you chose.
What none of this does
- Adding a contract to the watchlist does not extend it, and nothing on this site submits an extension for you.
- It does not send you alerts. What the engine alerts on, and what is not switched on, is on Notifications.
- It does not work on mainnet. The site refuses to be built for another network.