Type a symbol, name, pair or address
Plain words about custody, what Signal records, and how anyone checks it.
Paste a HyperEVM transaction hash. The answer comes from the ledger, not from anyone by hand.
Signal never has your private key. A wallet you connect stays in that wallet. An embedded wallet is created and held by Privy, and Signal only ever asks it to sign; the key is never shown to Signal.
If you export an embedded key and paste it into another app, that app has everything. From that moment nothing on this site can protect the wallet, and neither can Privy. Treat an exported key as a new custodian, and only give it to software you would trust with everything in the wallet.
Every transaction this site builds is written to a ledger before your wallet is asked to sign: which wallet, to which contract, a fingerprint of the call, the amount, the label. When the wallet answers, the transaction hash is attached. Rows are chained: each carries the hash of the one before it, so a row cannot be changed or removed later without breaking every row after it. The rows are public and never deleted; your address and browser are kept apart from the chain for thirty days, for reports, and then dropped.
That gives one clean answer for any transaction on HyperEVM: built by Signal, or not. A transfer that drained a wallet and has no row here was signed somewhere else.
The check above reads /api/proof/tx/<hash>. The day's root is at /api/proof/day/YYYY-MM-DD, and the rows at /api/proof/rows?from=1. Each row's sha is sha256 of the previous sha, a bar, and the row's chained fields as sorted compact JSON. Recompute it from the rows and you have checked the ledger without trusting this page.
A send to an address that starts and ends like one you have used, but differs in the middle, is refused by the Send sheet. That pattern is address poisoning, and it is the most common way funds leave by hand.