Clear signing
Many wallets still show raw data for any contract they don’t recognise, and “blind signing” — approving calls you can’t actually read — is one of the ways wallets get drained. Vela’s answer is clear signing: before you sign, the transaction is decoded into something you can understand, as far as it can be.
What you see
Instead of raw calldata, Vela shows:
- Intent — what the transaction does: Send, Approve, Swap, and so on.
- The substance — the amounts and the addresses involved, with token amounts shown in real units and recipients resolved to a name where one exists.
- The details — nonce, deadlines, and the raw calldata, available on demand rather than shoved in your face.
- A risk indication, color-coded so that dangerous actions stand out.
How it works (ERC-7730)
Vela decodes both contract calls and EIP-712 typed data using ERC-7730 descriptors — small, shareable definitions of what a contract’s functions mean.
Vela looks for a descriptor in this order:
- Built into the app — descriptors for widely used contracts: the Uniswap, PancakeSwap and SushiSwap routers, WETH, the Aave v3 pool, 1inch, Lido and wstETH, and Seaport.
- Fetched from Vela’s chain-data server, which republishes the public ERC-7730 registry.
- Standard shapes — ERC-20 tokens, ERC-721 and ERC-1155 NFTs, ERC-4626 vaults and ERC-2612 permits — so most everyday actions still decode.
Verified is reserved for the first source. A transaction is labelled verified only when the description came from a descriptor built into the app you are running — or from the chain-data server and is identical to the built-in copy, which proves nothing was changed in transit. Anything else the server sends is still decoded and still shown, with a line saying it came from the descriptor service and nothing authenticated it. That service is not signed, so it is only as trustworthy as whoever runs it — which is one reason you can run your own.
Token amounts are formatted using the token’s real on-chain decimals. If Vela can’t confirm a token’s decimals, it shows the amount as if the token had 18 and marks it unverified, so a wrong number never looks like a checked one.
Risk levels
Every decoded transaction gets a risk level so the dangerous patterns stand out:
- Caution for approvals and permits — you’re granting spending power.
- Danger for the genuinely risky, like an unlimited token approval.
- Lower risk for routine actions like staking or depositing.
When Vela can’t decode a call
When no ERC-7730 descriptor exists but the function appears in a public selector database, Vela decodes the call generically and labels it best effort — decoded, but not verified — under a caution banner. If even that fails, or Vela can only decode part of a transaction, it does not pretend to understand it.
Why this matters
Self-custody means no one can reverse a bad transaction for you. The defense isn’t a support desk — it’s understanding what you approve before you approve it. Clear signing is how Vela tries to show you that, and it has limits: it can only be as honest as the app showing it, which is why an independent check matters. See the whitepaper for where it fits in Vela’s security model.