Developers

Build on verified commerce

Crinkl converts verified purchase evidence into signed purchase attestations, privacy-thresholded commerce signals, and proof-backed shopper activation. Discover us through x402 / Bazaar, query commerce signals via MCP or REST, or build agents that close the loop from validation to Boosts and verified-purchase campaigns. Public and x402 responses never return raw receipts, wallet histories, or identifiable purchase records.

Agent

crinkl-agent

Open-source reference agent. Scans email for DKIM-signed billing receipts and earns sats over Lightning. Supports Gmail (OAuth) or AgentMail (dedicated inbox, no OAuth). Run standalone with npx crinkl-agent or install as an OpenClaw skill.

MCP Server

15 public tools + 6 agent tools via Streamable HTTP

Public tools expose network health, verification metadata, and thresholded aggregate signals. They do not expose raw receipts, wallet histories, line items, or identifiable purchase records. The same MCP server also exposes agent tools for vendor discovery, human-authorized pairing, receipt submission, and earnings.

{
  "mcpServers": {
    "crinkl": {
      "url": "https://mcp.crinkl.xyz/mcp"
    }
  }
}

Public read-only tools

get-protocol-summary

Concise explanation of what Crinkl is and how the protocol works.

get-cumulative-gmv

All-time cumulative Gross Merchandise Value verified by the protocol.

get-daily-gmv

Signed GMV summary for a specific calendar date (UTC).

get-trailing-gmv

Rolling N-day GMV trend summary.

get-spend-signals

Thresholded, delayed verified spend activity signals from the network.

resolve-cbsa

Resolve a CBSA code to its metro area name.

get-merchant-summary

Thresholded merchant and category distribution across verified spends.

get-spend-distribution

Thresholded geographic and category distribution over a trailing window.

get-settlement-summary

Bitcoin settlement statistics for the network.

get-gmv-inclusion-proof

Verify caller-supplied GMV inclusion proof metadata.

verify-reward-commitment

Verify a reward commitment token's cryptographic integrity.

verify-issued-gmv

Full end-to-end verification of a spend's inclusion in verified GMV.

get-recent-issued-proofs

Recent proof issuance metadata without raw receipt contents or buyer identities.

get-issuer-keys

Ed25519 public key used to sign all attestation tokens.

get-reward-policy

Current reward policy (sats/receipt rate, category multipliers, reserve).

Agent tools

6 additional MCP tools handle vendor discovery, pairing, receipt submission, and scoped earnings. Pairing always requires a human to approve the 4-character code in the Crinkl PWA.

get-vendors

List currently approved DKIM vendor domains used to seed Gmail searches.

pair-agent

Start pairing by generating a 4-character code. A human must approve it in the Crinkl app before the agent can claim its key.

claim-api-key

Poll for the API key after the human approves the pairing code in the app.

verify-receipt

Preview DKIM verification of a billing email without creating a spend.

submit-receipt

Submit a DKIM-verified billing email to mint a spend token and earn sats.

get-agent-me

Return submission count, earned sats, and wallet-level stats for an API key.

REST API

Base URL: https://api.crinkl.xyz

Agent endpoints

Submit billing emails and earn sats. Get an API key from app.crinkl.xyz (Profile → Agent Keys) or via the pairing flow. The pair endpoint only creates the short-lived code; a human approves that code inside the PWA. Pass agentmailInbox in the pair request to bind an AgentMail inbox.

GET/api/agent/allowed-vendors

List currently approved DKIM vendor domains used to seed Gmail search queries. Unknown domains queue for review on submission.

POST/api/agent/pair

Start pairing by generating a 4-character code. A human must approve it in the Crinkl app before the agent can claim its key. Optional: pass agentmailInbox to bind an AgentMail inbox.

GET/api/agent/pair/info

Fetch pairing metadata (AgentMail inbox, expiry) for the logged-in PWA user before approval.

POST/api/agent/pair/claim

Poll for API key after the human approves the pairing code in the app.

POST/api/agent/submit-email-receiptx-api-key

Submit base64 .eml for DKIM verification + spend creation.

POST/api/agent/verify-email-receiptx-api-key

Preview verification without creating a spend.

GET/api/agent/mex-api-key

Your submission count, earned sats, wallet stats.

GET/api/agent/spends/:spendId/token/latestx-api-key

Retrieve the signed spend attestation token.

Public endpoints

Signed JSON responses. No authentication required. Public endpoints prove activity and integrity; monetizable commercial detail is delayed, bucketed, thresholded, or moved behind x402/campaign access.

GET/api/public/gmv/cumulative

Signed cumulative GMV token.

GET/api/public/gmv/daily/:date/summary

Daily GMV summary.

GET/api/public/gmv/trailing/summary

Trailing N-day GMV trend.

GET/api/public/spend/signals/recent

Thresholded recent spend activity signals.

GET/api/public/spend/merchants/summary

Thresholded merchant distribution.

GET/api/public/cbsa/resolve

CBSA code resolver.

GET/api/public/settlement/summary

Bitcoin settlement stats.

GET/api/public/proofs/gmv-inclusion/:spendId

Caller-supplied GMV inclusion proof verification.

POST/api/public/proofs/reward-commitment/verify

Verify reward commitment and return token-to-batch trace fields.

GET/api/public/proofs/issued-gmv/recent

Recent proof issuance metadata.

POST/api/public/proofs/issued-gmv/verify

Full end-to-end GMV verification.

GET/api/public/issuer/keys

Ed25519 public key.

GET/api/public/policy

Reward policy.

GET/api/public/predicates

Active predicates.

GET/api/public/taxonomy/categories

12 canonical categories.

GET/api/public/taxonomy/cbsa

CBSA code list.

x402 paid commerce signals

Agents can pay per request for privacy-preserving aggregate commerce answers from verified purchases. These routes are single-use, thresholded, and licensed for the response only. Campaign measurement, repeat spend, incremental sales, proof-backed purchase rules, brand/SKU cuts, exports, dashboards, and SLA require a campaign or enterprise agreement.

GET/x402/catalog

Machine-readable catalog, schemas, pricing, examples, privacy terms, license metadata, and ZK campaign upgrade path.

GET/x402/categories

Free category discovery for agents.

GET/x402/geos

Free geo input format discovery, including CBSA syntax.

GET/x402/merchants/search

Free store registry lookup. Does not return spend activity.

GET/x402/category-pulse

$0.025 rewarded purchase participation pulse. Aggregate, delayed, thresholded.

GET/x402/merchant-category-signal

$0.05 merchant/category readiness signal. Bucketed verified activity.

GET/x402/campaign-fit-estimate

$0.10 proof-backed campaign fit estimate with retailer/category alternatives.

GET/x402/next-best-signal

$0.01 ranked next-call guidance for marketing agents.

GET/x402/geos/available

$0.025 threshold-safe CBSA shortlist for a category.

Campaign upgrade path

x402 answers help agents decide where verified demand is moving. When a brand is ready to act, Crinkl can turn that signal into a campaign rule such as "verified beverage buyers at Target in Las Vegas over the last 30 days."

Campaign flows can use zero-knowledge proofs so a shopper proves they meet the purchase rule without revealing who they are, their full receipt, wallet history, or unrelated purchases.