XRPL Commerce Verification Demo
Verifies RLUSD trust-line balances and returns signed boolean attestations for merchant eligibility. Try it live with your own r-address.
Scenario: A coffee shop wants to give 10% off to customers holding 100+ RLUSD. The merchant calls POST /v1/attest with the customer's r-address. The API checks the trust line balance and returns a signed boolean — eligible or not — without ever exposing the actual balance. The response is ECDSA P-256 signed and verifiable by anyone at /.well-known/jwks.json.
Walkthrough
You send a POST request with the XRPL wallet address, the token issuer, and a minimum balance threshold. The API checks the trust line without ever exposing the actual balance.
{
"xrplWallet": "ra8xqX4QhcogFfxpMxMByvFnXyxw9E8rzY",
"conditions": [
{
"type": "token_balance",
"chainId": "xrpl",
"contractAddress": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
"currency": "RLUSD",
"threshold": 50
}
]
}
The API returns a signed attestation. The pass field tells you if all conditions were met. The sig is an ECDSA P-256 signature you can verify independently.
{
"ok": true,
"data": {
"attestation": {
"id": "ATST-8F3A2E7B1C9D4056",
"pass": true,
"results": [
{
"condition": 0,
"label": "",
"type": "token_balance",
"chainId": "xrpl",
"met": true,
"evaluatedCondition": {
"type": "token_balance",
"chainId": "xrpl",
"contractAddress": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
"operator": "gte",
"threshold": 50,
"currency": "524C555344000000000000000000000000000000",
"decimals": null
},
"conditionHash": "0xa7c3f2...",
"ledgerIndex": 95482163,
"ledgerHash": "BB9023D447285923C36E3DF18EF0FC37A5...",
"trustLineState": { "frozen": false }
}
],
"passCount": 1,
"failCount": 0,
"attestedAt": "2026-03-01T12:00:00Z",
"expiresAt": "2026-03-01T12:30:00Z"
},
"sig": "MEUCIQC4xR...base64...",
"kid": "insumer-attest-v1"
},
"meta": { "creditsRemaining": 98, "creditsCharged": 1, "version": "1.0", "timestamp": "2026-03-01T12:00:01.000Z" }
}
Use the insumer-verify npm package to verify the attestation signature against the public key. Anyone can verify — no API key required.
import { verifyAttestation } from 'insumer-verify'; // Pass the full API response envelope, not response.data const response = await res.json(); const result = await verifyAttestation(response, { jwksUrl: 'https://insumermodel.com/.well-known/jwks.json' }); console.log(result.valid); // true
Try It Live
Enter your XRPL wallet address below and run a real attestation against the API.
Paste an existing key or generate a free one instantly.
By generating a key, you agree to our Terms of Service.
Pre-populated with a sample RLUSD check. Change the wallet or token to try your own.
Enter a valid XRPL r-address
Next Steps
Get an API key and make your first attestation call in under 5 minutes.
Start here →Deep dive into the attestation endpoint, condition types, and Merkle proofs.
Read docs →How RLUSD, USDC, and XRP verification works across commerce and compliance.
Read article →Browse the XRPL code examples on GitHub.