Skip to main content
POST
/
v1
/
compliance
/
merkle
/
proof
/
batch
curl -X POST https://api.engram.training/v1/compliance/merkle/proof/batch \
  -H "Content-Type: application/json" \
  -d '{
    "addresses": [
      "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b",
      "0x0000000000000000000000000000000000001234"
    ]
  }'
{
  "results": [
    {
      "address": "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b",
      "sanctioned": true,
      "leafIndex": 42,
      "proof": ["a1b2c3...", "d4e5f6..."],
      "root": "16890407db296faf..."
    },
    {
      "address": "0x0000000000000000000000000000000000001234",
      "sanctioned": false,
      "leafIndex": -1,
      "proof": [],
      "root": "16890407db296faf..."
    }
  ],
  "root": "16890407db296faf...",
  "checkedAt": "2026-04-08T08:30:00.000Z"
}
Check up to 100 addresses in a single call. Returns individual proof results for each address. Free — no credits charged.

Request Body

addresses
string[]
required
Array of wallet addresses to check (max 100). Any chain.

Response

results
array
Array of proof objects, one per address. Each has the same shape as the single-address endpoint.
root
string
The current Merkle root used for all proofs.
checkedAt
string
ISO timestamp of when the check was performed.
curl -X POST https://api.engram.training/v1/compliance/merkle/proof/batch \
  -H "Content-Type: application/json" \
  -d '{
    "addresses": [
      "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b",
      "0x0000000000000000000000000000000000001234"
    ]
  }'
{
  "results": [
    {
      "address": "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b",
      "sanctioned": true,
      "leafIndex": 42,
      "proof": ["a1b2c3...", "d4e5f6..."],
      "root": "16890407db296faf..."
    },
    {
      "address": "0x0000000000000000000000000000000000001234",
      "sanctioned": false,
      "leafIndex": -1,
      "proof": [],
      "root": "16890407db296faf..."
    }
  ],
  "root": "16890407db296faf...",
  "checkedAt": "2026-04-08T08:30:00.000Z"
}