About Parley
What it is. Parley gives every payment (an invoice, a transaction, a PayBox request) a private, end-to-end-encrypted thread between the two wallets involved, and that thread can carry the payment request, the payment and the receipt. It works from a PayBox agent (9 MCP tools), from a merchant's page (one script tag), and from its own web inbox.
Demo video (55 s). https://x.com/Amanullah_Bhlm/status/2111519106487009394
Who it is for. Merchants and payers who need to talk about a specific payment without email or support tickets, and PayBox users whose agents should explain and settle payments in a durable, private channel.
Verified (2026-10-17)
| Where | What was verified | How |
|---|---|---|
| Base mainnet (8453) | Contract deployed (0xDc286558B784a959cc313e9D6D0C13FAd9903306, v1.3.0, private messaging on, block 52725655) | cast call … implementationVersion() on mainnet.base.org |
| Base mainnet | Concierge live: its messaging key is registered on mainnet | inbox_status in the PayBox portal shows the key, error: null |
| PayBox portal | Plugin uploaded, "Checks passed · 9 tools" with 4 network hosts (sepolia.base.org, base-sepolia-rpc.publicnode.com, mainnet.base.org, base-rpc.publicnode.com); bundle sha256 c1792ed2… (starts with a plain-text header for judges) | portal run |
| PayBox portal | Hosted tool runs pass: resolve_room, inbox_status, propose_payment_from_thread (correct eip155:8453 USDC proposal), send_sealed (clean setup error with link when the wallet has no key) | portal run |
| PayBox portal | register_key → Validate: "Simulation passed" on Base mainnet | portal Validate with a PayBox wallet |
| Base Sepolia (84532) | Full guest loop on the live site: register → message → concierge reply with payment card → pay (test funds added) → concierge verifies on-chain → PAID | browser runs on https://parley-panel.vercel.app, repeated after every change |
| Local chain | PayBox-wallet path end to end with the real plugin bundle: link → register_key → send_sealed → reply → propose_payment_from_thread → receipt → verified; same Parley key reopens the inbox after wiping the browser | plugin/dev/agent-sim.ts, browser |
| Tests | 48 contract tests, 21 plugin end-to-end checks, 23 relay/concierge checks, 38 error-catalog cases | EVIDENCE.md |
Next on mainnet: every flow has been run end to end on Base Sepolia and in the local end-to-end tests, and the Base mainnet contract, concierge and plugin proposals are live and validated in the PayBox portal. The full PayBox-wallet conversation on mainnet (register, message, pay a 0.01 USDC card) is the natural next run once a funded PayBox wallet is used in production; nothing in the code changes for it.
Passkey option: built as an alternative to the Parley key and ready to try on any device with a passkey; the Parley key path is the one exercised in testing.
Roadmap
- PayBox-native inbox: PayBox users read encrypted replies inside the PayBox chat with no Parley key, via an EIP-712 signature proposal in PayBox (preferred) or an x402-authenticated enclave key service (opt-in). Full plan in
JOURNEY_ROADMAP.md. - Production on Base: multisig owner and timelock, external review, custom domain, device management, mainnet relay policy (capped or merchant-paid sponsoring, x402 pay-per-message).
- MoonPay depth: Commerce/Helio connector (thread link in receipts and checkout), PayBox
request_idthreads, content-free notifications, group threads. - More chains and wallets: payments already settle on Base, Ethereum, Polygon, Arbitrum and OP; next: ERC-4337 paymaster, Solana wallets, encrypted attachments, SDK and white-label build.
Disclosure
- AI assistance was used to write the code for the logic designed by the author (
AI_DISCLOSURE.md). - MetaMask shows a "continue at your own risk" warning on every free
*.vercel.appaddress, including this site; the guest demo uses no wallet extension. A custom domain removes it. - Source repository: private, available to organisers on request.