Oracle08
Shadow report & badge
Shadow mode answers one question for a sceptic: what would CompliR have held that you already paid? Paste a payee book and recent payments, get the holds, limits, lookalikes and payments at risk. The badge is the other way round: one image that says an address was screened and links to the proof.
Shadow report
POST /api/v1/shadow # free during the event
{
"payeeBook": [ // the same book /shadow offers as its example - all real addresses
{ "label": "Ronin Bridge exploiter (Lazarus Group - sanctioned)", "address": "0x098b716b8aaf21512996dc57eb0615e2383e2f96" },
{ "label": "CompliR treasury wallet", "address": "0xc742ada2872a042dd36d2e706907b4036968960c" },
{ "label": "GuardedTreasury contract", "address": "0x3b13186a1e4b1108ea5cb2f8853d84a2aed71cc5" },
{ "label": "CompliR treasury wallet (new invoice - lookalike)", "address": "0xc7420000000000000000000000000000000a960c" }
],
"recentPayments": [
{ "to": "0x098b716b8aaf21512996dc57eb0615e2383e2f96", "amountUsdc": 150 },
{ "to": "0xc742ada2872a042dd36d2e706907b4036968960c", "amountUsdc": 10 }
]
}
→ 200
{
"entries": [{ "label", "address", "score", "tier", "reasonCodes": ["SANCTIONS_DIRECT", "USDC_BLACKLISTED", …], "wouldHold", "wouldLimit" }, …],
"summary": { "screened": 4, "wouldHold": …, "wouldLimit": …, "lookalikes": … }, // whatever the live pipeline returns today
"paymentsAtRisk": [{ "to": "0x098b…2f96", "amountUsdc": 150 }] // the 150 USDC to the sanctioned wallet
}- Input
- payeeBook 1–500 entries (label, address) · recentPayments ≤ 1,000 (to, amountUsdc, txHash?)
- Targets
- book addresses first, then payment recipients not in the book; de-duplicated; at most 50 unique addresses screened, 4 in flight, depth 1
- wouldHold
- tier HIGH
- wouldLimit
- tier MEDIUM
- lookalikes
- LOOKALIKE_OF_KNOWN_PAYEE hits against your own book (same first and last four hex characters, or ≥ 0.8 similarity); the example book carries one lookalike of our own treasury wallet
- paymentsAtRisk
- every recent payment whose recipient is not LOW
- Page
- /shadow accepts CSV
label,addressor JSON lines and has “Copy report as Markdown” for a Discord paste
Shadow screens go through the real pipeline (attested, ledgered) under the internal client id shadow, so they never count as traction. The MCP tool shadow_report wraps the same endpoint.
Badge
GET /api/v1/badge/:address.svg renders "Screened by CompliR · TIER · valid until <date>" from the latest stored attestation. It never runs the pipeline: an address that was never screened gets a grey "unknown" badge; an attestation past validUntil reads "expired". Responses carry Cache-Control: max-age=60 so receipts and READMEs can hot-link it. Build a snippet at /badge.
<!-- Markdown -->
[](https://trycomplir.xyz/api/v1/attestation/0xPayee)
<!-- HTML -->
<a href="https://trycomplir.xyz/api/v1/attestation/0xPayee">
<img src="https://trycomplir.xyz/api/v1/badge/0xPayee.svg" alt="Screened by CompliR" height="20">
</a>Link the badge to /api/v1/attestation/:address so a reader can verify the EIP-712 signature behind it rather than trust the picture.