SIGIL

Quickstart

Call Sigil from your agent in five minutes.

Sigil speaks MCP over streamable HTTP. Endpoint: POST /mcp. Discovery: GET /.well-known/sigil.json.

# discover the service (free)
curl -s https://<sigil-host>/.well-known/sigil.json

The five tools

toolprice (USDT)
sigil_screen_deep0.10
sigil_screen_transaction0.02
sigil_scan_token0.01
sigil_screen_address0.005
sigil_verify_verdict0 — free forever

With an MCP client (any SDK), connect to /mcp and call tools normally. Raw JSON-RPC works too — the server is stateless, so a bare tools/call per request is fine:

1 · Screen a transaction

curl -s -X POST https://<sigil-host>/mcp \
  -H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \
  -d '{
    "jsonrpc": "2.0", "id": 1, "method": "tools/call",
    "params": {
      "name": "sigil_screen_transaction",
      "arguments": {
        "chainId": 196,
        "from": "0x1111111111111111111111111111111111111111",
        "to":   "0x2222222222222222222222222222222222222222",
        "value": "0",
        "data": "0x095ea7b3…",
        "mode": "standard"
      }
    }
  }'

OKX marketplace task buyers can also replay the headline service as plain JSON:

{
  "chainId": 196,
  "from": "0x1111111111111111111111111111111111111111",
  "to": "0x2222222222222222222222222222222222222222",
  "value": "0",
  "data": "0x"
}

The unpaid POST receives the standard 0.02 USD₮0 challenge. After a valid payment replay, the response is the sealed verdict directly rather than an MCP wrapper.

Response (result.content[0].text is the verdict JSON):

{
  "receiptId": "sgl_01kwqqwevdyt9s1kvngng5",
  "schemaVersion": "1",
  "rubricVersion": "1.0.0",
  "chainId": 196,
  "subject": { "kind": "transaction", "digest": "0x…" },
  "verdict": 1,
  "riskScore": 45,
  "action": { "kind": "erc20_approve", "summary": "Approve 0x5555…5555 to spend UNLIMITED …", "unlimited": true },
  "simulation": { "success": true, "balanceDiff": [], "approvalsGranted": [ { "token": "0x2222…", "spender": "0x5555…", "amount": "unlimited" } ], "coverageGaps": ["state_fork_simulation"] },
  "findings": [ { "id": "APPROVAL_UNLIMITED_UNVERIFIED", "severity": "high", "weight": 45, "hard": false, "title": "Unlimited approval to unverified spender", "detail": "…", "evidence": ["spender:0x5555…", "unlimited:true"] } ],
  "reasons": ["Unlimited approval to unverified spender: …"],
  "issuedAt": 1750000000, "expiresAt": 1750000900,
  "coverage": { "consulted": ["reputation", "simulator", "tokenSafety"], "unavailable": [] },
  "seal": { "signature": "0x…", "signer": "0x…", "leaf": "0x…" }
}

verdict: 0 PASS · 1 WARN · 2 BLOCK. Your agent's rule is one line: refuse to sign on BLOCK, surface WARN to a human or policy layer, proceed on PASS.

2 · Scan a token

{ "name": "sigil_scan_token", "arguments": { "chainId": 196, "token": "0x8888…8888" } }

Returns { token, honeypot: true|false|"unknown", buyTaxBps?, sellTaxBps?, mintable?, ownerCanBlacklist?, ownershipRenounced?, proxyUpgradeable?, topHolderPct?, liquidityUsd?, sources[] }.

3 · Screen an address

{ "name": "sigil_screen_address", "arguments": { "chainId": 196, "address": "0x098B716B8Aaf21512996dC57EB0615e2383E2f96" } }

Returns { address, isContract, labels[], ageDays?, sourceVerified?, sources[] } — labels include sanctioned, known_drainer, known_scam, phishing, mixer, fresh_wallet, verified_protocol, exchange, unverified_contract, eoa.

4 · Deep screen

sigil_screen_deep accepts the same transaction fields, forces the three-persona panel, and bundles the sealed verdict with a token-safety report plus reputation profiles for every decoded counterparty.

5 · Verify a verdict — free, no auth

{ "name": "sigil_verify_verdict", "arguments": { "receiptId": "sgl_01kwqqwevdyt9s1kvngng5" } }

Returns { found: true, verdict } with the full signed verdict. Verification is free forever because trust must be checkable. Receipts are also served over plain HTTP: GET /verdicts/:receiptId.

Paying for calls

The four paid tools answer HTTP 402 with an x402 challenge until payment is presented — see the x402 guide.