- Multiple funding sources: Connect wallets (MetaMask, Rabby) or exchanges (Binance)
- Cross-chain deposits: Automatic routing between different blockchain networks
- Real-time quotes: Live pricing and gas estimates
- Customizable theming: Full control over appearance and branding
- Transaction tracking: Real-time status updates with block explorer links
How it Works
The widget provides multiple deposit flows depending on the user’s preferred funding source:- Wallet Flow: Connect existing wallets and transfer tokens directly
- Exchange Flow: Link exchange accounts (Binance) for seamless withdrawals
- Card Deposits: Traditional payment methods (coming soon)
Integrate
API key
You can get an API key from the Developer Portal.
Basic implementation
Import and configure the widget.To enable Binance deposits, add the
enableExchange configuration.Any of the tokens or nontokenized positions can be used as
tokenOutDomain whitelisting required: Contact Enso support to whitelist your domain(s) before enabling exchange integration.
- Checkout Modal
- Standalone Checkout
Setup Web3 providers
The widget requires Wagmi and React Query providers. Set up your app’s root component:
Configuration Props
CheckoutConfig Properties
The following checkout config exists:| Parameter | Type | Description | Required |
|---|---|---|---|
apiKey | string | Your Enso API key | Yes |
tokenOut | string | Destination token address | Yes |
chainIdOut | number | Destination chain ID | Yes |
recipient | string | Recipient address for the output tokens | No |
theme | WidgetTheme | Custom Chakra UI theme config | No |
enableExchange | SupportedExchanges[] | Enable exchange integrations (["binance"]) | No |
cexBridgeChainMapping | Record<number, number> | Intermediate chain mapping if direct withdraw not possible | No |
CheckoutModalProps
TheCheckoutModal expands CheckoutConfig with modal-related properties and callbacks:
| Parameter | Type | Description | Required |
|---|---|---|---|
config | CheckoutConfig | Widget configuration object | Yes |
isActive | boolean | Controls modal visibility | Yes |
setIsActive | (active: boolean) => void | Modal state setter | Yes |
onClose | () => void | Close callback function | No |
Supported Networks
The widget supports deposits across all networks:- Ethereum (Chain ID: 1)
- Base (Chain ID: 8453)
- Arbitrum (Chain ID: 42161)
- Optimism (Chain ID: 10)
- Polygon (Chain ID: 137)
- Avalanche (Chain ID: 43114)
- BSC (Chain ID: 56)
- And many more
Learn more
Updated
