Skip to main content
Every paid request leaves two records: a transaction (payment state) and a stream of events (lifecycle steps). Use them together to verify your paywall is healthy in production.

Transactions

Open Transactions in the dashboard. Each row represents one payment attempt against one paywall. A healthy paid request goes:
Pending → Completed
A failed request terminates in Failed. Filter by Pending, Completed, or Failed to triage.

Events

Open Events for the same paywall. Events are emitted at each step:
  • Request — the client hit your paywall
  • Payment — a payment payload was received and validated
  • Fulfillment — Proceeds proxied to your upstream and got a successful response
  • Error — something failed at any step
When a transaction stops short of Completed, scan the matching event stream for the missing step or the Error event that records why.

Wallet balances

Open Wallet to confirm received payments are landing. The page shows holdings for:
  • Circle Nanopayments
  • Arc
  • Base
  • HyperEVM
  • Tempo
With Mainnet mode off in your profile menu, balances are shown for the matching testnets — see Supported blockchains. Withdrawals route per-chain and show Status, Amount, and Date.

Get notified with webhooks

Transactions and events are pull — you open the dashboard to inspect them. To be notified automatically instead, configure Webhooks: Proceeds sends a signed HTTP callback to your server on payment.succeeded, payment.failed, and other events, so you can react without polling.

Next

Production checklist

Confirm settings before moving a service to mainnet.

Troubleshooting

Common failures and how to resolve them.