Skip to main content
Open the live playground to try each component and copy its setup.
Confidential wallet showing USDC, USDT, and EURC with shield, send, and unshield actions

The ConfidentialWallet widget with configured tokens and balances hidden.

Ready-made widgets

Import @inco/ctoken/ui/styles.css once and mount widgets inside the React providers. Client components inherit your HSL theme variables.
TriggerProps: trigger?: ReactNode, triggerLabel?: ReactNode, triggerClassName?: string. Transaction callbacks belong on action widgets/views; ConfidentialWallet has no onSuccess. With indexing enabled, discovery defaults on and appends holdings after configured tokens. For controlled reveal, pair revealed with onToggleReveal.

Action and navigation views

WalletView: home, shield, unshield, send, history, select. Use onBusyChange to prevent modal dismissal during operations.

Display and modal primitives

Keep Max’s exact decimal string unchanged in state and pass it as amount.