method how_it_works()
One request, read in five steps
Presign sits between the dapp and your wallet. Before the wallet asks you to confirm, the request is decoded, simulated, checked and explained. Most checks finish in about a second.
- 01The request is decoded
- 02It runs before it runs
- 03Risks get named
- 04You get a verdict and a fix
- 05Then you sign
Don't sign this
Don't sign this
steps 01-05
What happens in that second
step 01 · request
The request is decoded
A dapp asks your wallet for a signature. Presign turns the call data into words: which method, which contract, how much.
app.swapzone.exampleethereum · mainnetReading01 / requestapprove(spender, amount)- method
- approve(spender, amount)
- spender
- 0x9f3a…c21e
- amount
- unlimited USDC
- network
- Ethereum · fee ~$1.84
step 02 · simulation
It runs before it runs
The transaction is replayed on a fork of the chain, so you see the balance change before anything moves.
app.swapzone.exampleethereum · mainnetSimulated02 / simulationapprove(spender, amount)you giveUnlimited USDCyou getNothingBalance after: 4,820 USDC can be moved at any time by 0x9f3a…c21e.
step 03 · flags
Risks get named
Allowances, new contracts, unverified code, lookalike addresses and known drainer patterns are flagged one by one.
app.swapzone.exampleethereum · mainnet3 flags03 / flagsapprove(spender, amount)- Unlimited allowanceThe spender can move every USDC you hold, now or later.
- New contractThe spender was deployed 3 days ago.
- Unverified sourceIts code is not published, so nobody can read it.
step 04 · verdict
You get a verdict and a fix
Not a score you have to interpret. A plain answer, and when it is a no, the change that makes it a yes.
app.swapzone.exampleethereum · mainnetFlagged04 / verdictapprove(spender, amount)Don't sign this
fixSet the allowance to 250 USDC, the amount of this swap.step 05 · signed
Then you sign
The safe version goes to your wallet as usual. Presign never holds keys and never signs for you.
app.swapzone.exampleethereum · mainnetSafe to sign05 / signedapprove(spender, amount)Signed with a 250 USDC limit
- allowance
- 250 USDC
- tx
- 0x4be1…07fa
- checked in
- 1.2 s
timing p50
Fast enough that you never wait for it
questions
What people ask first
Does Presign see my private key?
No. It reads the request your wallet is about to sign. Keys stay in the wallet, and nothing is signed by Presign.
What if Presign is down?
Your wallet works as before. Requests go straight through and the popup says the check was skipped.
Which chains are covered?
Ethereum, Base, Arbitrum, Optimism and Polygon. Solana is in beta since v2.1.
Can it be wrong?
Yes, and it says how sure it is. Every flag links to the rule that raised it, so you can check the reasoning.
Read. Then sign.
Add Presign to your wallet and see every request in plain words before you confirm it.
