Loading...
Loading...
Set up and initialize Nexus SDK in any JS/TS frontend project. Use when configuring wallet provider, SDK instance lifecycle, network selection, or adding a minimal wallet connection path.
npx skill4agent add availproject/nexus-elements nexus-sdk-setupnpm install @avail-project/nexus-corepnpm add @avail-project/nexus-coreyarn add @avail-project/nexus-corerequestconst provider = (window as any).ethereumnew NexusSDK({ network, debug, siweChain })network'mainnet''testnet'NetworkConfigdebug?: booleansiweChain?: numbersdk.isInitialized()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;
}connector.getProvider()walletClient.requestimport { 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;
}await sdk.deinit()await sdk.setEVMProvider(provider)sdk.hasEvmProvideruseEffectaccountsChanged.on.removeListenersdk.triggerAccountChange()sdk.initializeSDK_INIT_STATE_NOT_EXPECTEDawait sdk.deinit()WALLET_NOT_CONNECTEDCONNECT_ACCOUNT_FAILED