Before signing or sending
An agent with a wallet asks DechoNet before it signs or sends: the destination address, the page that asked, and what the request would allow — in one call.
Example request and answer (MCP)Example
{
"method": "tools/call",
"params": {
"name": "crypto_check_before_sign",
"arguments": {
"to": "0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed",
"url": "https://claim-airdrop.example/",
"request": {
"method": "eth_sendTransaction",
"params": [
{
"to": "0x…token",
"data": "0x095ea7b3…ffff"
}
]
}
}
}
} {
"verdict": "suspicious",
"signals": [
{
"key": "crypto_drain_request",
"severity": "warning",
"part": "request"
}
],
"request": {
"method": "eth_sendTransaction",
"kind": "approve_unlimited",
"allows": "Can keep moving this token without limit",
"drain": true
},
"unchecked": [
"balance_history",
"token_contracts",
"simulation"
]
} - Same verdict words as the web check: dangerous, suspicious, no signals — never "safe"
- The answer lists what was not checked (balances, token contracts, simulation)
- Nothing sent is stored — only the verdict and signal names
MCP tools
crypto_check_before_sign | Judges the destination address, the page that asked and the signing request together. Recognises requests that can hand over assets: unlimited token approvals, Permit signatures, setApprovalForAll. |
|---|---|
wallet_address_check | One wallet address: chain, checksum, OFAC sanctions listing and DechoNet's record. |
crypto_exchange_check | Whether a domain is an official exchange, wallet or dApp address, or one that only uses the name. |
Connect
Remote MCP: https://dechonet.com/mcp (no install, no key)npm: npx dechonet-mcpHTTP: POST /api/util/crypto-presign with { to, url, request } — docs at /developers
DechoNet never holds or moves assets and gives no investment opinion. It does not ask for a seed phrase or private key — anyone who does is not us.