The Payment Index for AI Agents
The Google Maps for Crypto Payments
The directory every AI agent queries to pay a casino — and the rails that settle it on-chain.
User: "Deposit $100"
Card declined
Sign up for exchange → Complete KYC
Buy crypto → Copy address → Select network → Hope it arrives
Result: 90% abandon before deposit completes
User: "Deposit $100"
AI Agent queries Bazaar Index
Finds casino → x402 payment
~5 seconds, ~$0.001
Result: 100% completion
$0B
crypto gambling market
0+
x402 endpoints indexed
ZERO
casino listings
~5s
settlement time
The Intersection Nobody Else Occupies
Nobody else sits at this intersection.
Simple is the only player at the intersection of all three: an existing casino business network, an AI agent platform, and x402 protocol adoption. Coinbase built the protocol but has no casino relationships. Crypto gateways have casino relationships but no AI platform and no x402. Nobody else can do this today.
Unfair Advantages
Casino Business Network
BuiltWe already work with casino operators. White-glove onboarding is a phone call away.
Crypto Infrastructure
BuiltWallet, custody, trading, balances — 23+ MCP tools already built and running.
AI Platform
BuildingSemantic Kernel orchestration, HITL gates, multi-agent architecture, conversation memory.
First-Mover in Vertical
NOWZero casino listings on Bazaar today. Whoever seeds the index first, owns it.
Protocol Alignment
Buildingx402 is production-ready. Coinbase + Cloudflare are pushing adoption. We ride the wave.
Competitive Landscape
| Player | Casino Network | AI Agent | x402 Protocol | Bazaar Index |
|---|---|---|---|---|
| Simple | Existing | Building | Adopting | Building |
| Coinbase | — | — | Created | Generic (no casinos) |
| NOWPayments | Some | — | — | — |
| CoinGate | Some | — | — | — |
| CoinsPaid | Some | — | — | — |
Why Casinos, Why x402, Why Now
The Market Gap
Casinos are categorically blocked by Visa and Mastercard. Users get their cards declined — and ninety percent abandon before completing a deposit.
Meanwhile, x402 has processed 75M+ transactions and settled $24M+ on-chain. Bazaar indexes 12,000+ payable endpoints.
Every single listing is an AI or compute API. Zero casinos. Zero high-risk merchants. The entire vertical is empty.
$0B
market with zero crypto payment infrastructure
Why x402 Specifically
| Protocol | What It Is | Settlement | Status | Verdict |
|---|---|---|---|---|
| x402Our choice | HTTP 402 payment protocol (Coinbase) | Base USDC ~2s, Solana ~500ms | 75M+ txs, $24M+ settled | Our choice. Production-grade SDKs, Bazaar discovery, facilitator model fits our architecture. |
| L402 | Lightning-based HTTP 402 (older) | Lightning ~1s | 6 years production | Wins agent-to-agent. But Lightning, not dollar-stable. Not suited for merchant deposits. |
| Stripe MPP | Machine Payment Protocol (Stripe + Tempo) | Fiat + crypto | Nascent | Backed by Stripe but very early. Won't touch gambling vertical. |
| AP2 | Cryptographic consent protocol | N/A (consent layer) | v0.1 demonstrative | Phase 2 complement — adds consent to x402 settlements. Not a replacement. |
| ERC-8004 | On-chain agent/merchant identity | N/A (identity layer) | 24K agents registered | Phase 2-3 for identity verification. Not a payment protocol. |
The Three-Layer Thesis
Layer 1 — The Product
A user says "deposit $100." The agent checks their balance, finds the casino, and settles on-chain in five seconds. No exchange signups, no wallet addresses — just intent to payment. First three casino partners come through existing relationships.
Layer 2 — The Index
Every casino we onboard is automatically cataloged in our Bazaar index. Any AI agent worldwide — Claude, ChatGPT, a custom enterprise bot — can query our directory to discover and pay these casinos. We don't need to own the agent. We own the map.
Layer 3 — The Ecosystem
Fifty-plus merchants across casinos, adult content, and trading platforms. Revenue compounds from five directions: direct users, settlement fees, index queries, premium listings, and SDK licensing. Simple becomes the canonical payment directory for AI agents.
The Flywheel
Whoever runs the facilitator, controls the index.
Bazaar's federated model means Simple's facilitator becomes the single source of truth for casino payment endpoints. Third-party agents — Claude Desktop, ChatGPT, any MCP client — query our index to find anycasino. We don't need to build every agent. We just need to be the directory they all rely on.
What People Actually See
Three perspectives on the same ecosystem — user, operator, and support.
First Visit
~5 minutes
Including first-time setup
Returns (1 Week)
0 seconds
Skip purchase flow entirely
First Visit
Buy 103 USDC
Deposit to PokerStars
1 Week Later
Deposit to PokerStars
Key UX Principles
| Principle | Implementation |
|---|---|
| Zero crypto jargon | User never sees wallet addresses, network names, gas fees, or chain selection |
| Every sensitive action gated | HITL approval for buy, swap, deposit. No autonomous money movement. |
| Credentials isolated | CVV entry and 3DS render in native forms. Never in chat. Never in LLM context. |
| Preview before execute | User always sees exact amount, destination, and fee before approving |
| Agent explains, doesn't assume | Agent tells user what it's doing at each step in plain language |
From User Intent to On-Chain Settlement
The complete payment flow — from a simple chat message to confirmed on-chain settlement.
Flutter → AgenticAI → McpApi → Settlement → Casino → Facilitator → Blockchain
How the Services Connect
Two views: a simplified business flow and the full service topology.
User
Says intent, approves, signs on device
AI Agent
Resolves, orchestrates, coordinates
Casino
Receives payment, credits player
Blockchain
Settles on-chain (~5 seconds)
Settlement never communicates with the Facilitator. Settlement → Casino → Facilitator → Blockchain. Settlement is the x402 client (talks to casinos). Facilitator is called by casinos' middleware.
The Payment Index — How Discovery Works and Why We Own It
Think of Bazaar as DNS for payable APIs.
Just as DNS maps domain names to servers, Bazaar maps AI agent queries to payable endpoints. Pay once through a facilitator — you're indexed. No registration forms, no approval process, no manual listing.
Federation model: Coinbase runs the largest index (12K+ endpoints). We run our own (facilitator.simple.ai). Each facilitator indexes only traffic flowing through it.
The Ecosystem Today
75M+
x402 Transactions
Total since Dec 2025
$24M+
Settled Value
On-chain USDC
12,000+
Bazaar Listings
Endpoints indexed
ZERO
Casino Listings
All AI/compute APIs
AI / Compute APIs
Casinos / High-Risk
Zero-Registration Listing Flow
Merchant Declares Metadata
Casino adds Bazaar extension to x402 route: discoverable: true, category: casino-deposits
First Payment Flows
User deposits via Simple's agent. Payment routes through our facilitator.
Facilitator Auto-Indexes
Extracts Bazaar metadata, catalogs URL, requirements, category. No approval queue.
Casino Is Discoverable
Any x402-capable agent can now discover and pay this casino via our index.
Discovery API
client = with_bazaar(HTTPFacilitatorClient())
resources = client.extensions.discovery.list_resources(
ListDiscoveryResourcesParams(type="http", limit=10)
)
for r in resources.resources:
print(f"{r.url} -- {r.payment_requirements}")const res = await fetch(
"https://facilitator.simple.ai/discovery/resources"
);
const { items } = await res.json();
const casinos = items.filter(
(i) => i.category === "casino-deposits"
);A developer building a ChatGPT plugin writes 5 lines of code and immediately discovers every casino in our index. No SDK needed. No partnership. Just query the public API.
The Federation Model
Operator: Coinbase
api.cdp.coinbase.com/.../discovery/resources
Largest (12K+), all AI/compute
Cross-query for broader ecosystem
Operator: Us
facilitator.simple.ai/discovery/resources
Casino + high-risk vertical
The index we build and control
Operator: x402 Foundation
x402.org/facilitator/discovery/resources
Testnet / dev
Partner sandbox testing
Because Bazaar is federated, there is no single "master index" anyone can take from us. Our facilitator, our index. Coinbase cannot absorb our casino listings because payments route through our facilitator.
Simple's Bazaar Strategy
PartnerRegistry (YAML) is primary source of truth. Bazaar is supplementary, zero dependency.
- Casino partners auto-list on first payment
- Curated registry we fully control
- Bazaar metadata as bonus, not requirement
The Network Effect
The Race
Whoever indexes the casinos first, wins. Bazaar's federated model means the index belongs to whoever processes payments. Once 50 casinos route through our facilitator, any agent wanting to reach them must query ourindex. This is not a feature we can add later. It's a first-mover land grab. The casino vertical is empty today. We have the network. The window is open now.
How Merchants Integrate
From zero to live in 3-6 days. ~15 lines of code.
Zero
Chargebacks
<1%
Transaction fees
3-6 days
Integration time
~15 LOC
Code required
Integration Steps
Casino's dev team installs @x402/express and adds ~15 lines to their deposit endpoint.
Simple's team adds the casino to PartnerRegistry with allowed addresses and supported networks.
Both teams run end-to-end testing on sandbox with testnet USDC.
Switch to production facilitator. First real payment auto-indexes in Bazaar.
Casino's Code (~15 Lines)
import { paymentMiddleware } from "@x402/express";
app.get(
"/api/deposit",
paymentMiddleware(
"https://facilitator.simple.ai",
{
price: "$100",
network: "base",
payTo: "0xCasinoUSDCAddress",
},
),
(req, res) => {
// Payment verified and settled -- credit the player
res.json({ status: "deposited", amount: 100 });
},
);Merchant API
| Method | Endpoint | Purpose |
|---|---|---|
| POST | /api/v1/merchants/{id}/deposits | Create deposit |
| GET | /api/v1/merchants/{id}/deposits/{depositId} | Check status |
| GET | /api/v1/merchants/{id}/deposits | List deposits (paginated) |
| POST | /api/v1/merchants/{id}/webhooks/test | Test webhook delivery |
Webhook notifications: HMAC-SHA256 signed (X-Simple-Signature), 7 retries over 24 hours with exponential backoff. Stripe-compatible pattern.Self-Custody, HITL, Credential Isolation
Four security domains, each architecturally enforced — not just policy.
Self-Custody
Keys Never Leave Phone
Flutter App
- Private Key (Secure Enclave)
- Signs EIP-712 on device
- Signs SPL transactions
- User controls funds
Backend
- NEVER has key access
- Receives signature only
- Relays to facilitator
- If compromised: funds safe
Human-in-the-Loop
Every Sensitive Action Gated
Credential Isolation
Two Separate Paths
Path A: Orchestration
- LLM → Tool calls
- → MCP → Settlement
- Only opaque IDs
- (credential_id)
NEVER touches credentials
Path B: Credentials
- Flutter → Secure form
- → Direct to storage
- Actual credentials
- (CVV, passwords)
NEVER touches LLM
Settlement Safety
Defense in Depth
| Protection | Mechanism | Status |
|---|---|---|
| Payment redirection | AllowedPayToAddresses per partner, reject if not in allowlist | Mitigated |
| Facilitator gas theft | Balance cap 0.5 ETH/5 SOL, anomaly alert >$100 gas/hour, quarterly key rotation | Monitored |
| Double spending | Redis SETNX dedup (7-day TTL), idempotent deposit creation | Mitigated |
| Preview tampering | Pin PaymentRequirements in ApprovalContext, verify payTo + amount at execution | Mitigated |
| Prompt injection | Partner sanitization: max length, newlines stripped, charset [a-zA-Z0-9 .\-/:@] | Mitigated |
| Velocity abuse | $500/tx, $2,000/day, 5 deposits/hour per user, server-side enforcement | Mitigated |
What's Built, What's Next, How We Earn
Three phases from MVP to ecosystem scale.
Service.Settlement
To BuildTypeScript, @x402/core, port 3000
x402 settlement on Base
To BuildSelf-hosted facilitator, 60s timeout
x402 settlement on Solana
BlockedBlocked by 2 CRITICAL spikes
SettlementProxy in AgenticAI
To BuildThin HTTP client
Partner Registry (YAML)
To BuildAllowedPayToAddresses
Merchant REST API
To BuildDeposit CRUD, webhooks
Deposit state machine
To BuildPostgreSQL, on-chain reconciliation
Sandbox environment
To BuildBase Sepolia + Solana Devnet
OpenRouter LLM migration
To BuildDrop-in SK config, ZDR enabled
HITL gates for deposits
ExtendAllowlist classifier, ForcePreviewArguments
Rate limiting + circuit breakers
To BuildPer-user velocity, per-service Polly
Webhook notifications
To BuildStripe-pattern HMAC-SHA256
Facilitator HA
To Build2+ replicas, reverse-proxy auth
3+ casino partners
NewWhite-glove onboarding
Existing Infrastructure (Carried Forward)
Semantic Kernel orchestration
Manual invocation, agentic loop
23+ MCP wallet tools
Balance, transfer, swap, deposit
HITL dual-gate state machine
Approval + input gates
Conversation memory
Hybrid InMemory + PostgreSQL
Bearer token passthrough
AsyncLocal, McpTokenHandler
Multi-agent architecture
Custodial + NonCustodial agents
Revenue Model Progression
P1: MVP
Weeks
P2: Growth
Months
P3: Ecosystem
Quarters
What We're Testing Before We Commit
Critical blockers, protocol risks, and the validation plan.
Critical Blockers
Flutter EIP-712 signing
CRITICALBlocks ALL x402 settlement on Base
Dart ecosystem immature for EIP-712. Spike BEFORE settlement work. Fallback: WebView signing bridge.
Flutter Solana SPL signing
CRITICALBlocks Solana settlement
x402_svm (0.3.0) experimental. Spike needed. Fallback: defer Solana to Phase 2, Base-only MVP.
Zero production casinos on x402
HIGHProduct-market fit risk
We're first movers. Advantage if execute, risk if market doesn't materialize. White-glove onboarding validates demand.
Flutter EIP-712 Signing Spike
CRITICALALL x402 Settlement Work
Protocol Risks
| Risk | Severity | Detail | Mitigation |
|---|---|---|---|
| Gas estimation failures#1065 | HIGH | 40% failure rate on identical requests via CDP facilitator | Self-hosted x402-rs with retry + exponential backoff |
| Solana timeout#646 | HIGH | maxTimeoutSeconds unenforceable, blockhash expiry 80-90s controls validity | Spike before Solana MVP to validate constraint |
| Verify/settle atomicity#447 | HIGH | /verify succeeds but /settle fails, orphan window exists | On-chain reconciliation catches (60s job) |
| CDP facilitator timeout#1062 | HIGH | CDP used 5-10s timeout < Base's 10-28s confirm time | Self-hosted facilitator with 60s timeout |
| x402 daily volume ~$28K | MEDIUM | Tech works but limited market proof, ~50% wash trading | Business risk; first casino partners validate demand |
Validation Plan (Spike Backlog)
| Spike | Blocks | Priority | Pass Looks Like | Fail Means |
|---|---|---|---|---|
| Flutter EIP-712 signing (Base) | ALL x402 settlement | CRITICAL | Valid signature accepted by x402-rs /verify, matches TypeScript reference | Evaluate WebView bridge; worst case: backend-assisted signing |
| Flutter Solana SPL signing | Solana settlement | CRITICAL | Valid partially-signed TransferChecked, facilitator adds feePayer | Defer Solana to Phase 2, Base-only MVP |
| Solana maxTimeoutSeconds (#646) | Solana timeout handling | HIGH | 80-90s blockhash expiry acceptable for UX | Add client-side timeout + status polling |
| x402 split-signing integration | End-to-end settlement | HIGH | Flutter signs, Settlement constructs, Casino mock accepts, x402-rs settles on testnet | Isolate failure point, fix, re-test |
| x402 extra field (#577) | User attribution | HIGH | Out-of-band API call works as fallback | Already using out-of-band as primary, low risk |
Facilitator contingency: If x402-rs becomes unmaintained, alternatives exist: Second State (Rust fork, Base+ETH+Solana), raid-guild (Go, Base+ETH). Both self-hostable. CDP hosted facilitator available (1K free txs/month). Not locked into single facilitator.