QVAC

Web3

SignSafe

Stops blind-signing crypto transactions by explaining every approval with local RAG before you sign

ragtext-generationweb3
SignSafe

People lose billions signing transactions they can't read - a wall of hex a wallet just asks them to confirm. SignSafe is an offline signing-risk engine: deterministic code decodes a Safe transaction, EIP-712 payload, or raw calldata and authors the verdict, and a small local model only explains that verdict in plain language, in seven languages, with zero network egress.

Facts first, model second

Deterministic decoders extract facts from the payload - hashing, signer recovery, recursive calldata decoding - and a rules engine turns those facts into a code-locked verdict: Normal, Suspicious, or Do Not Sign. Only then does a local Qwen3-1.7B model, grounded by RAG over a knowledge base of real attack cases, explain the risk signals in the signer's language. The model can add color; it can never change the verdict.

how it works (README.md)
paste: Safe-tx JSON · EIP-712 typed data · raw calldata · free-form text
  --> deterministic decoders (hashing, signer recovery, calldata decode) - code, no model
  --> rules engine + local signing policy - code, no model
  --> VERDICT (code-locked): Normal / Suspicious / Do Not Sign
  --> GTE-Large embeddings -> local RAG over data/knowledge (retrieved attack cases)
  --> Qwen3 1.7B explains the verdict in your language (7 supported)
      - the model may explain the verdict, never change it -

Demo video

Why the model can't talk its way out

  • The risk verdict is authored by deterministic code - a prompt-injection payload still renders Do Not Sign

  • Every verdict carries an audit trace tying each risk signal to the facts and RAG documents that fired it

  • If a model is unavailable, every path falls back to the deterministic report

Build this

Ship your own local AI

One install in JavaScript or Python. 10+ AI tasks. Private, offline and free - on the hardware you already own.