Nexus Elements - Swaps
Overview
Install the SwapWidget component for cross-chain swaps with exact-in/out modes, progress UI, and optional callbacks.
Prerequisites
- NexusProvider installed and initialized on wallet connect.
- Wallet connection configured.
Install (shadcn registry)
- Ensure shadcn/ui is initialized (
components.jsonexists). - Ensure registry mapping exists:
"registries": {
"@nexus-elements/": "https://elements.nexus.availproject.org/r/{name}.json"
}
- Install:
npx shadcn@latest add @nexus-elements/swaps
Alternative:
npx shadcn@latest add https://elements.nexus.availproject.org/r/swaps.json
Manual install (no shadcn)
- Download
https://elements.nexus.availproject.org/r/swaps.json. - Create each file in
files[].targetwithfiles[].content. - Install dependencies listed in
dependenciesand eachregistryDependenciesitem.
Usage
import SwapWidget from "@/components/swaps/swap-widget";
<SwapWidget
=> {}}
=> console.log(amount)}
=> console.error("Swap failed")}
/>
SDK flow mapping
- Uses
sdk.swapWithExactIn(...)andsdk.swapWithExactOut(...). - Relies on the swap intent hook (
swapIntent) for confirmation UI. - Progress updates come from
NEXUS_EVENTS.SWAP_STEP_COMPLETE.
Props (SwapsProps)
onStart,onComplete,onError
Notes
- The widget handles exact-in and exact-out modes internally.
- If you need an error message, you can widen the
onErrorsignature inswap-widget.tsxto accept(message?: string).