nexus-sdk-setup

- Install the SDK package:

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "nexus-sdk-setup" with this command: npx skills add availproject/nexus-elements/availproject-nexus-elements-nexus-sdk-setup

Nexus SDK Setup

Install dependency

  • Install the SDK package:

  • npm install @avail-project/nexus-core

  • or pnpm add @avail-project/nexus-core

  • or yarn add @avail-project/nexus-core

Obtain an EIP-1193 provider

  • Use any wallet connection stack to get a provider.

  • Ensure the provider has a request method.

  • Use a browser fallback only when appropriate:

  • const provider = (window as any).ethereum

Construct the SDK instance

  • Create new NexusSDK({ network, debug, siweChain }) .

  • Provide network :

  • 'mainnet' or 'testnet' to use default endpoints.

  • NetworkConfig to use custom endpoints.

  • Provide debug?: boolean to enable verbose SDK logging.

  • Provide siweChain?: number to set the SIWE chain id (if you use SIWE).

Initialize once

  • Create a single instance and reuse it.

  • Store the instance in a module singleton or a React ref.

  • Guard with sdk.isInitialized() to avoid re-init.

Minimal example

import { NexusSDK, type EthereumProvider } from '@avail-project/nexus-core';

const sdk = new NexusSDK({ network: 'mainnet' });

export async function initNexus(provider: EthereumProvider) { if (sdk.isInitialized()) return sdk; if (!provider || typeof provider.request !== 'function') { throw new Error('Invalid EIP-1193 provider'); } await sdk.initialize(provider); return sdk; }

Initialize when a wallet kit is already integrated (FamilyKit / wagmi-based)

  • If your kit exposes a wagmi connector, derive an EIP-1193 provider from it.

  • Use the same pattern as Nexus Elements: prefer connector.getProvider() on desktop and a walletClient.request wrapper on mobile.

  • Example (adapt to your hooks and UI state):

import { NexusSDK, type EthereumProvider } from '@avail-project/nexus-core'; import { useAccount, useConnectorClient } from 'wagmi';

const sdk = new NexusSDK({ network: 'mainnet', debug: false });

async function initFromWalletKit(isMobile: boolean) { const { connector } = useAccount(); const { data: walletClient } = useConnectorClient();

const mobileProvider = walletClient && ({ request: (args: unknown) => walletClient.request(args as never), } as EthereumProvider);

const desktopProvider = await connector?.getProvider(); const effectiveProvider = isMobile ? mobileProvider : desktopProvider;

if (!effectiveProvider || typeof effectiveProvider.request !== 'function') { throw new Error('Invalid EIP-1193 provider from wallet kit'); }

if (!sdk.isInitialized()) { await sdk.initialize(effectiveProvider); }

return sdk; }

Handle disconnect / teardown

  • On wallet disconnect, call await sdk.deinit() .

  • Clear state (balances, hook refs, cached intents).

Use provider-only mode (optional)

  • If you need balances before full init, call:

  • await sdk.setEVMProvider(provider)

  • Check sdk.hasEvmProvider to confirm.

Handle SSR / client-only execution

  • Initialize in client-only code (useEffect or dynamic import) to avoid SSR issues.

Handle account changes

  • If provider supports events, re-fetch balances on accountsChanged .

  • If provider lacks .on /.removeListener , call:

  • sdk.triggerAccountChange() after the wallet address changes.

Handle init errors

  • Wrap sdk.initialize in try/catch.

  • If SDK_INIT_STATE_NOT_EXPECTED , call await sdk.deinit() and retry.

  • If WALLET_NOT_CONNECTED or CONNECT_ACCOUNT_FAILED , prompt user to reconnect.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

nexus-sdk-balances-metadata-utils

No summary provided by upstream source.

Repository SourceNeeds Review
General

nexus-sdk-hooks-events

No summary provided by upstream source.

Repository SourceNeeds Review
General

nexus-sdk-integration

No summary provided by upstream source.

Repository SourceNeeds Review
General

nexus-sdk-bridge-flows

No summary provided by upstream source.

Repository SourceNeeds Review