Before you send funds to a wallet, accept a payment, or grant access, you need to answer: is this wallet real? Does it hold actual assets, or is it a fresh throwaway? The InsumerAPI trust endpoint answers this with 26 on-chain checks across 4 dimensions, all in a single call. No transaction history analysis. No behavioral scoring. Just verifiable on-chain facts, signed with ECDSA.

What a trust profile checks

The POST /v1/trust endpoint runs 36 checks across 4 dimensions:

Optional: add a solanaWallet for Solana USDC, or add an xrplWallet for XRPL RLUSD and USDC (up to 39 checks total).

Each check returns a boolean: does this wallet have a non-zero holding? No amounts revealed.

The simplest trust check

curl -X POST https://api.insumermodel.com/v1/trust \
  -H "X-API-Key: insr_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "wallet": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
  }'

That is it. One wallet address, one call, 36 checks.

Python example

import requests

resp = requests.post(
    "https://api.insumermodel.com/v1/trust",
    headers={
        "X-API-Key": "insr_live_YOUR_KEY_HERE",
        "Content-Type": "application/json",
    },
    json={
        "wallet": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
    },
)

data = resp.json()
summary = data["data"]["trust"]["summary"]
print(f"Passed: {summary['totalPassed']} / {summary['totalChecks']}")
print(f"Dimensions with activity: {summary['dimensionsWithActivity']}")

JavaScript example

const API_KEY = "insr_live_YOUR_KEY_HERE";

const resp = await fetch("https://api.insumermodel.com/v1/trust", {
  method: "POST",
  headers: {
    "X-API-Key": API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    wallet: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  }),
});

const data = await resp.json();
const summary = data.data.trust.summary;
console.log(`Passed: ${summary.totalPassed} / ${summary.totalChecks}`);
console.log(`Dimensions with activity: ${summary.dimensionsWithActivity}`);

What comes back

The response looks like this:

{
  "ok": true,
  "data": {
    "trust": {
      "id": "TRST-D4F6A",
      "wallet": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
      "conditionSetVersion": "v1",
      "dimensions": {
        "stablecoins": {
          "checks": [
            {
              "label": "USDC on Ethereum",
              "chainId": 1,
              "met": true,
              "evaluatedCondition": {
                "type": "token_balance",
                "chainId": 1,
                "contractAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
                "operator": "gt",
                "threshold": 0,
                "decimals": 6
              },
              "conditionHash": "0x3a7f...",
              "blockNumber": "0x13a1b40",
              "blockTimestamp": "2026-03-06T10:00:00.000Z"
            }
          ],
          "passCount": 3,
          "failCount": 4,
          "total": 7
        },
        "governance": { "checks": [], "passCount": 2, "failCount": 2, "total": 4 },
        "nfts": { "checks": [], "passCount": 0, "failCount": 3, "total": 3 },
        "staking": { "checks": [], "passCount": 1, "failCount": 2, "total": 3 }
      },
      "summary": {
        "totalChecks": 17,
        "totalPassed": 6,
        "totalFailed": 11,
        "dimensionsWithActivity": 3,
        "dimensionsChecked": 4
      },
      "profiledAt": "2026-03-06T10:00:01.000Z",
      "expiresAt": "2026-03-06T10:30:01.000Z"
    },
    "sig": "...",
    "kid": "insumer-attest-v1"
  },
  "meta": { "creditsRemaining": 94, "creditsCharged": 3, "version": "1.0", "timestamp": "2026-03-06T10:00:01.000Z" }
}

Note: a trust profile costs 3 credits (vs 1 for attest) because it runs 36 checks across multiple chains.

Reading the results

Here are the key fields developers care about:

Cross-chain trust with Solana and XRPL

To extend the trust profile beyond EVM chains, include a solanaWallet or xrplWallet in your request:

curl -X POST https://api.insumermodel.com/v1/trust \
  -H "X-API-Key: insr_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "wallet": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
    "solanaWallet": "YOUR_SOLANA_ADDRESS",
    "xrplWallet": "rN7n3473SaZBCG4dFL83w7p1W9cgPJqKro"
  }'

This adds Solana USDC, XRPL RLUSD, and XRPL USDC checks to the profile, bringing the total up to 39 checks. The additional checks appear in their own solana and xrpl dimensions, separate from the EVM dimensions.

How DJD Agent Score uses this

DJD Agent Score, part of the Coinbase x402 ecosystem, uses the trust endpoint to score AI agent wallets before payment settlement. The trust profile provides the "does this wallet hold real assets?" signal that complements DJD's behavioral transaction analysis.

An agent with stablecoins across 3 chains, governance tokens, and staking positions is a very different counterparty than one with an empty wallet. The trust endpoint makes that distinction in a single call.

When to use trust vs attest

Use trust when you want a broad picture of a wallet's on-chain presence. Good for: pre-transaction risk checks, agent trust scoring, cold-start reputation. Trust profiles provide the evidence; gating access on wallet state is where the decisions happen.

Use attest when you want to verify specific conditions you define. Good for: token gating, NFT access, governance eligibility, custom thresholds.

Both return ECDSA-signed attestation results. Both work across 33 chains. The difference is scope: trust runs a fixed set of 36 checks across 4 dimensions, while attest runs your custom conditions (up to 10 per call).

Get a free API key in 30 seconds

10 free credits. 26 trust checks per call. Start scoring wallets before transacting.

View Developer Portal