Skip to content

Circle Gateway: accept cross-chain USDC from buyers #69

Description

@manoahLinks

Summary

Let buyers pay for tickets in USDC from any Circle Gateway-supported chain (Ethereum, Arbitrum, Optimism, Polygon, Base, Avalanche, Solana) and settle the deposit on Base for ticket minting. Chain-agnostic UX without manual bridging.

Scope

  • Add a "pay with crypto (any chain)" option alongside fiat (Paystack/Monnify) on checkout.
  • On buyer intent, return a Gateway deposit instruction (address + amount on the chain they selected).
  • Listen for `gateway-deposit.success` webhook (Webhooks: Circle webhook handler (/webhooks/circle) #65) → trigger ticket mint on Base.
  • Fallback: if Gateway fails or is slow, fall back to standard single-chain USDC deposit to buyer's Circle wallet on Base.
  • Document chain selection UX + fee disclosure (Gateway charges ~$0.01 routing fee).

Implementation notes

Invoke `circle:use-gateway` for deposit/mint/burn intent API. Never send USDC directly to the Gateway contract — API only.

Acceptance criteria

  • Buyer on Arbitrum can buy a ticket; deposit confirmed on Base < 60s
  • Webhook flow unified with other crypto deposits
  • Frontend shows per-chain fees pre-purchase
  • Fallback tested: Gateway timeout → direct USDC deposit works

Depends on

Metadata

Metadata

Assignees

No one assigned

    Labels

    cryptoCryptocurrency and stablecoin operationsphase-5Phase 5: Payments + Webhooks

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions