Chains

OpenBitum routes payments through two backends:

The merchant decides per product which currencies to accept.

Supported chains and tokens (MVP)

| № | Chain | Network | Tokens | Backend | Typical confirmation | Notes | |---|---|---|---|---|---|---| | 1 | Bitcoin | mainnet | BTC, Lightning | Bitcart | 10–60 min on-chain · seconds for LN | LN requires BITCART_BTC_LIGHTNING=true | | 2 | Ethereum | mainnet | ETH, USDC, USDT | Bitcart | 1–3 min | High gas — recommend Base/Polygon for sub-$50 carts | | 3 | Base | mainnet | ETH, USDC | Bitcart | <30 s | Cheap, fast — recommended default | | 4 | Polygon | mainnet | MATIC, USDC, USDT | Bitcart | <30 s | Cheap, mature | | 5 | Arbitrum | mainnet | ETH, USDC | Bitcart | <30 s | L2 | | 6 | Tron | mainnet | USDT (TRC-20) | Bitcart | ~1 min | Very cheap USDT | | 7 | Solana | mainnet-beta | SOL, USDC, USDT | Solana Pay | <2 s finality, ~30 s for safety window | Set SOLANA_RPC_URL |

Gas behaviour

Confirmation policy

The glue treats an invoice as paid when Bitcart reports status=complete (default: confirmation depth per chain set by Bitcart) or when the Solana watcher sees the transaction finalized.

Recommended depths (Bitcart defaults shown — override per store in Bitcart admin):

| № | Chain | Confirmations | |---|---|---| | 1 | BTC | 1 | | 2 | LN | n/a (instant) | | 3 | ETH / Arbitrum | 1 | | 4 | Base / Polygon | 5 | | 5 | Tron | 19 | | 6 | Solana | finalized |

Underpayment and overpayment

Refunds are off-chain operations (manual) for the MVP — see the Refunds section in the Troubleshooting page.

Adding a new chain

EVM chains require dropping a new Bitcart daemon into docker-compose.yml. See the template in infrastructure/bitcart-config/README.md. After the daemon is up, add the currency code to BITCART_CRYPTOS and restart the bitcart container.

Coming after MVP launch: chain abstraction via a unified gateways/ interface so adapters can be added without forking Bitcart.