Testnet vs Mainnet
DirectCryptoPay provides two separate environments so you can build and test your integration risk-free before processing real payments.
Environment Overview#
| Testnet | Mainnet | |
|---|---|---|
| Purpose | Development and testing | Production payments |
| Dashboard | test-app.directcryptopay.com | app.directcryptopay.com |
| API Base | test-api.directcryptopay.com | api.directcryptopay.com |
| Widget | widget-dev.directcryptopay.com | widget.directcryptopay.com |
| Blockchain Networks | Sepolia, Amoy, BSC Testnet, Base Sepolia, Arbitrum Sepolia, OP Sepolia, Avalanche Fuji, Solana Devnet, Tron Nile, Ton Testnet | Ethereum, Polygon, BNB Chain, Base, Arbitrum, Optimism, Avalanche, Solana, Tron, Ton |
| Tokens | Test tokens (free from faucets) | Real cryptocurrency |
| Subscription Required | No | Yes |
| Webhooks | Fully functional | Fully functional |
Per-Integration Environment#
Each integration has a mandatory environment setting: testnet or mainnet. This prevents accidentally mixing testnet and mainnet chains in the same integration.
- Testnet integrations can only use testnet chains (Sepolia, Amoy, etc.) and display a yellow "TEST MODE" banner in the widget
- Mainnet integrations can only use mainnet chains (Ethereum, Polygon, etc.)
- The environment is set when creating an integration and can be changed in the dashboard
Working with Testnet#
Testnet is a complete mirror of the production environment, using blockchain test networks instead of mainnets. Everything works the same way -- payment intents, widget, webhooks, and the dashboard -- but with worthless test tokens.
Getting Test Tokens#
You need test tokens to simulate customer payments:
| Token | Faucet |
|---|---|
| Sepolia ETH | sepoliafaucet.com |
| Sepolia USDC | faucet.circle.com |
Tip: You need a small amount of test ETH for gas fees on Sepolia, even when paying with test USDC. Get Sepolia ETH first.
Testing Workflow#
- Create your account on the testnet dashboard
- Configure your wallet address (same as mainnet -- it works on all EVM chains)
- Set up your integration (widget, WordPress plugin, etc.)
- Get test tokens from a faucet
- Make a test payment
- Verify the payment appears in your dashboard
- Verify your webhook receives the notification
Switching to Mainnet#
When you are ready for production:
- Create a mainnet account at app.directcryptopay.com
- Subscribe to a plan -- Mainnet access requires an active subscription
- Update your configuration:
- Change the API base URL from
test-apitoapi - Change the widget URL from
widget-devtowidget - Update your dashboard links
- Change the API base URL from
- Verify wallet address -- Confirm your production wallet is correct
- Test with a small real payment before going fully live
Do not reuse testnet API keys on mainnet. Each environment has separate accounts and API keys. Testnet keys will not work on mainnet and vice versa.
Environment Variables Reference#
Testnet#
DCP_API_BASE=https://test-api.directcryptopay.com
DCP_WIDGET_URL=https://widget-dev.directcryptopay.com
DCP_DASHBOARD=https://test-app.directcryptopay.com
Mainnet#
DCP_API_BASE=https://api.directcryptopay.com
DCP_WIDGET_URL=https://widget.directcryptopay.com
DCP_DASHBOARD=https://app.directcryptopay.com
Next Step: Set up your API Keys to start integrating.