Source: https://fincobra.com/docs/checkout/smart-contracts.html


# Smart Contracts

FinCobra Checkout uses EVM smart contracts for self-custodial stablecoin invoice payments on Ethereum mainnet, Arbitrum One, and Base. 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.

Only the contract deployments listed on this page are current for FinCobra Checkout.

## Supported EVM Networks

| Network          | Chain ID | Assets     | Contract rails                                   |
| ---------------- | -------: | ---------- | ------------------------------------------------ |
| Ethereum mainnet |      `1` | USDT, USDC | `CheckoutPaymentHubV2`, `InvoiceReceiverFactory` |
| Arbitrum One     |  `42161` | USDC       | `CheckoutPaymentHubV2`, `InvoiceReceiverFactory` |
| Base             |   `8453` | USDC       | `CheckoutPaymentHubV2`, `InvoiceReceiverFactory` |

Solana wallet checkout and Bitcoin xpub-derived address transfers do not require an EVM smart contract deployment.

## Production Deployments

| Network          | Contract                 | Address                                                                                                        | Transaction                                                                                                                              |
| ---------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Ethereum mainnet | `CheckoutPaymentHubV2`   | [`0x6bf112f72dd7bd0841342ef406546d50d97604db`](https://etherscan.io/address/0x6bf112f72dd7bd0841342ef406546d50d97604db) | [`0x6c346eb9a68ef372790bd4f6ca695410420d9cb6de4cb3a03654103e21912f53`](https://etherscan.io/tx/0x6c346eb9a68ef372790bd4f6ca695410420d9cb6de4cb3a03654103e21912f53) |
| Ethereum mainnet | `InvoiceReceiverFactory` | [`0x2bd7c7f7aa3550dbf38c92e0344ae9f503076764`](https://etherscan.io/address/0x2bd7c7f7aa3550dbf38c92e0344ae9f503076764) | [`0x477a3907635db944f3d6506821b1f03ba51dd3ab7c1f0dcd1ccd528de6bc48a9`](https://etherscan.io/tx/0x477a3907635db944f3d6506821b1f03ba51dd3ab7c1f0dcd1ccd528de6bc48a9) |
| Arbitrum One     | `CheckoutPaymentHubV2`   | [`0x3e4a76590ef64d216e360c8cb00731892bbbe3e2`](https://arbiscan.io/address/0x3e4a76590ef64d216e360c8cb00731892bbbe3e2) | [`0x99c6ca9708d4a65ecf0011ce426aa63962c3688632d32697ed8a39e61440795a`](https://arbiscan.io/tx/0x99c6ca9708d4a65ecf0011ce426aa63962c3688632d32697ed8a39e61440795a) |
| Arbitrum One     | `InvoiceReceiverFactory` | [`0xd1780c8e7fbc9d6289ebfd7acea7e1e685d02d7b`](https://arbiscan.io/address/0xd1780c8e7fbc9d6289ebfd7acea7e1e685d02d7b) | [`0x766f367e71e8f619b8e267ca82f0fb72e6666aa2d07c9e7051a6ef4d042ff878`](https://arbiscan.io/tx/0x766f367e71e8f619b8e267ca82f0fb72e6666aa2d07c9e7051a6ef4d042ff878) |
| Base             | `CheckoutPaymentHubV2`   | [`0xef53ac785d9d5104d46d56bc997dd1af06899f9f`](https://basescan.org/address/0xef53ac785d9d5104d46d56bc997dd1af06899f9f) | [`0xbbe3e4195578714103d638fc7df8321c45c29660f2c9c6796838311a0586f21a`](https://basescan.org/tx/0xbbe3e4195578714103d638fc7df8321c45c29660f2c9c6796838311a0586f21a) |
| Base             | `InvoiceReceiverFactory` | [`0x982dcd79cd8b267ca9303048f3c4cf4c846f34a4`](https://basescan.org/address/0x982dcd79cd8b267ca9303048f3c4cf4c846f34a4) | [`0x06dcc02859e164eefe15504ffb1c2661b676210920103d882400d593a7cc2379`](https://basescan.org/tx/0x06dcc02859e164eefe15504ffb1c2661b676210920103d882400d593a7cc2379) |

## Development Deployments

| Network          | Contract                 | Address                                                                                                        | Transaction                                                                                                                              |
| ---------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Ethereum mainnet | `CheckoutPaymentHubV2`   | [`0xdbb84fac2cdd5dd57dfa50b043f776a63ee70667`](https://etherscan.io/address/0xdbb84fac2cdd5dd57dfa50b043f776a63ee70667) | [`0x58f79ae5c56bd981c04cd2dbef0f0d43048b40e24065c850686dcc2acf029875`](https://etherscan.io/tx/0x58f79ae5c56bd981c04cd2dbef0f0d43048b40e24065c850686dcc2acf029875) |
| Ethereum mainnet | `InvoiceReceiverFactory` | [`0xbaf95f53bbb165a7a3cd579687bb1c5ffbbf4b85`](https://etherscan.io/address/0xbaf95f53bbb165a7a3cd579687bb1c5ffbbf4b85) | [`0x62be318c521c0a3407c95cabc40f248e93dfcbfb61f82d48782b82b33c613ba8`](https://etherscan.io/tx/0x62be318c521c0a3407c95cabc40f248e93dfcbfb61f82d48782b82b33c613ba8) |
| Arbitrum One     | `CheckoutPaymentHubV2`   | [`0xfcdea5f5695057878c3f8b1d77e68cd5be50a4d2`](https://arbiscan.io/address/0xfcdea5f5695057878c3f8b1d77e68cd5be50a4d2) | [`0xc62cb6d70771545785ccfcbee8d718b27241224c3deb6298b448eacf9cb43ae0`](https://arbiscan.io/tx/0xc62cb6d70771545785ccfcbee8d718b27241224c3deb6298b448eacf9cb43ae0) |
| Arbitrum One     | `InvoiceReceiverFactory` | [`0x5bdfc56d7cf67bc866602e061f70c1bd65bb9b0b`](https://arbiscan.io/address/0x5bdfc56d7cf67bc866602e061f70c1bd65bb9b0b) | [`0xcc7fcb069427bc5ae29ae89648f33265f3b3de073df8baa0fc5a57478cfbcab6`](https://arbiscan.io/tx/0xcc7fcb069427bc5ae29ae89648f33265f3b3de073df8baa0fc5a57478cfbcab6) |
| Base             | `CheckoutPaymentHubV2`   | [`0x10d492bb50d927a14a406766a60bd353c456bb3a`](https://basescan.org/address/0x10d492bb50d927a14a406766a60bd353c456bb3a) | [`0x37b78a2a6be385b3d4be289b824d2460c83ba3cec710764176b904786f024b5e`](https://basescan.org/tx/0x37b78a2a6be385b3d4be289b824d2460c83ba3cec710764176b904786f024b5e) |
| Base             | `InvoiceReceiverFactory` | [`0x005c5bc30cede75d9e452ec709962f8f94af92fa`](https://basescan.org/address/0x005c5bc30cede75d9e452ec709962f8f94af92fa) | [`0x9d6e7aca4d6d99d6c9c2fe5c6ac30df971463ec0cf0f6cf8ebd53381869782ce`](https://basescan.org/tx/0x9d6e7aca4d6d99d6c9c2fe5c6ac30df971463ec0cf0f6cf8ebd53381869782ce) |

## Supported Tokens

| Network          | Token | Address                                                                                                      |
| ---------------- | ----- | ------------------------------------------------------------------------------------------------------------ |
| Ethereum mainnet | USDT  | [`0xdAC17F958D2ee523a2206206994597C13D831ec7`](https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7) |
| Ethereum mainnet | USDC  | [`0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`](https://etherscan.io/address/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48) |
| Arbitrum One     | USDC  | [`0xaf88d065e77c8cC2239327C5EDb3A432268e5831`](https://arbiscan.io/address/0xaf88d065e77c8cC2239327C5EDb3A432268e5831) |
| Base             | USDC  | [`0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`](https://basescan.org/address/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913) |

Arbitrum USDT0 is not supported.

## Contract Roles

`CheckoutPaymentHubV2` is the browser-wallet payment rail. Customers connect an EVM wallet on the selected network and submit the payment transaction themselves. The hub verifies the requested token is allowlisted, transfers the merchant and commission amounts atomically, 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 Policy

FinCobra Checkout fund-path contracts are immutable deployments, not proxies. A behavior change requires a new deployment and a new deployment manifest. The contracts do not include implementation addresses, UUPS upgradeability markers, role-manager contracts, or standalone commission-manager contracts.

The commission recipient is `0xd2Bd690D56369E50fCc24A4e0c41B9d1a2ECD22f`. The maximum commission cap is `50` bps (`0.5%`) of the gross payment amount.

## Related API Fields

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

See [API Reference](./api-reference.md#payment-option-object) for the full payment option shape.
