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:
json
"registries": {
"@nexus-elements/": "https://elements.nexus.availproject.org/r/{name}.json"
}
- •Install:
bash
npx shadcn@latest add @nexus-elements/swaps
Alternative:
bash
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
tsx
import SwapWidget from "@/components/swaps/swap-widget";
<SwapWidget
onStart={() => {}}
onComplete={(amount) => console.log(amount)}
onError={() => 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).