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
| Token | Address |
|---|---|
| USDT | 0xdAC17F958D2ee523a2206206994597C13D831ec7 |
| USDC | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 |
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
| Field | Value |
|---|---|
| Environment | main |
| Network | Ethereum mainnet |
| Chain ID | 1 |
| Deployer | 0x3ad4ac57338877eF79e060b6579626Bb01230E18 |
| Recovery manager | 0x6fAf50D04c596c6F2cA87058024DE0aC3857914B |
CheckoutPaymentHub deployed at block | 24976655 |
InvoiceReceiverFactory deployed at block | 24976657 |
| Receiver creation code hash | 0x600628b3643106b00c09b024f22b30007d4f09694d60e3c29d6e54ae0c12fba0 |
Related API Fields
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.