Skip to content

Smart Contracts

FinCobra Checkout uses Ethereum mainnet smart contracts for self-custodial USDT and USDC invoice payments. The contracts do not custody merchant funds. Browser-wallet payments route ERC-20 tokens from the payer to the merchant recipient, and address-transfer invoices use deterministic receiver addresses that merchants settle from their own wallet.

This page reflects the Production Checkout deployment used by these docs.

Ethereum Mainnet

CheckoutPaymentHub

Address: 0x77c207AFD53934Dd9FF31185Af1B516085baECF2

Purpose: Shared payment hub for browser-wallet stablecoin checkout. It accepts payer-signed token transfers, routes approved ERC-20 tokens directly to the configured merchant recipient, and emits invoice-linked payment events.

InvoiceReceiverFactory

Address: 0x4909e18E775c9c150e381be14A3D3459fC689356

Purpose: Deterministic CREATE2 factory for address-transfer invoice receiver contracts. It predicts receiver addresses and deploys receivers when settlement is needed.

Supported Tokens

TokenAddress
USDT0xdAC17F958D2ee523a2206206994597C13D831ec7
USDC0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48

Contract Roles

CheckoutPaymentHub is the browser-wallet payment rail. Customers connect an Ethereum wallet and submit the payment transaction themselves. The hub verifies the requested token is allowlisted, transfers the exact token amount from the payer to the merchant recipient, and emits a PaymentAccepted event with invoice identifiers used by FinCobra Checkout to detect payment.

InvoiceReceiverFactory is the address-transfer rail. It derives per-invoice receiver addresses before deployment, which lets customers pay from an exchange or wallet without connecting to the hosted checkout page. When settlement is needed, the merchant wallet deploys the receiver and sweeps the designated token to the configured merchant recipient.

Deployment Details

FieldValue
Environmentmain
NetworkEthereum mainnet
Chain ID1
Deployer0x3ad4ac57338877eF79e060b6579626Bb01230E18
Recovery manager0x6fAf50D04c596c6F2cA87058024DE0aC3857914B
CheckoutPaymentHub deployed at block24976655
InvoiceReceiverFactory deployed at block24976657
Receiver creation code hash0x600628b3643106b00c09b024f22b30007d4f09694d60e3c29d6e54ae0c12fba0

Invoice responses include contract data only when the invoice has an Ethereum wallet-contract payment option. In that case, paymentOptions[].optionPayload.contractAddress is the active CheckoutPaymentHub address, paymentOptions[].optionPayload.tokenContract is the selected stablecoin contract, and paymentOptions[].optionPayload.recipient is the merchant recipient for that invoice.

See API Reference for the full payment option shape.