Skip to main content
GET
/
v1
/
compliance
/
merkle
/
proof
/
{address}
curl https://api.engram.training/v1/compliance/merkle/proof/0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b
{
  "address": "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b",
  "sanctioned": true,
  "leafIndex": 42,
  "proof": [
    "a1b2c3d4e5f6...",
    "f6e5d4c3b2a1...",
    "1234567890ab..."
  ],
  "root": "16890407db296faf7ff3c80deb93f0bf..."
}
Returns a Merkle inclusion proof for the given address. If the address is in the sanctions dataset, the proof can be submitted to the smart contract for on-chain verification. Free — no credits charged.

Path Parameters

address
string
required
Wallet address to check (any chain — Ethereum, Bitcoin, Stellar, Solana, etc.)

Response

address
string
The queried address.
sanctioned
boolean
true if the address is in the sanctions dataset.
leafIndex
number
The leaf position in the Merkle tree. -1 if not sanctioned.
proof
string[]
Array of hex-encoded sibling hashes (the Merkle path). Empty if not sanctioned.
root
string
The current Merkle root (hex-encoded, 32 bytes). Matches the on-chain root.

On-Chain Verification

The proof returned by this endpoint can be verified directly on the smart contract:
contract.verify_merkle_proof(
  address,     // The address string
  proof,       // Vec<BytesN<32>> — the sibling hashes
  leaf_index   // u32 — the leaf position
)
// Returns: true if the address is in the sanctioned dataset
curl https://api.engram.training/v1/compliance/merkle/proof/0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b
{
  "address": "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b",
  "sanctioned": true,
  "leafIndex": 42,
  "proof": [
    "a1b2c3d4e5f6...",
    "f6e5d4c3b2a1...",
    "1234567890ab..."
  ],
  "root": "16890407db296faf7ff3c80deb93f0bf..."
}