Skip to Content
Packages@tuwaio/evm-sdk

@tuwaio/evm-sdk

NPM Version License

@tuwaio/evm-sdk is the EVM add-on (Layer 9, L9) of @tuwaio/sdk. It re-exports the EVM packages of the TUWA projects under subpaths — Orbit Utils, Satellite Connect, Pulsar, SIWX and Nova Connect — built on viem and @wagmi/core. An app with EVM wallets installs @tuwaio/sdk and this package; nothing of it is loaded in a Solana-only app.


🏛️ Core Capabilities

  • Chain packages in one install: @tuwaio/orbit-evm, @tuwaio/satellite-evm, @tuwaio/pulsar-evm and @tuwaio/siwx-evm are dependencies, pinned to versions that work with the same release of @tuwaio/sdk.
  • Nova Connect for EVM: importing @tuwaio/evm-sdk/nova-connect registers the EVM chain helpers of @tuwaio/orbit-evm for the chain lists of Nova Connect, types appChains of NovaConnectProvider as your viem chains and adds the EVM connection types to Satellite Connect. It goes through @tuwaio/sdk/nova-connect/evm, so this applies to the NovaConnectProvider and SatelliteConnectProvider that @tuwaio/sdk exports.
  • Subpaths: every subpath re-exports one package, unchanged. Its reference is on the site of that package.

💾 Installation

pnpm add @tuwaio/sdk @tuwaio/evm-sdk @wagmi/core viem react react-dom

Peer dependencies: @tuwaio/sdk (the same release line), @wagmi/core (3.x), viem (2.x) and @tuwaio/satellite-core (>=0.6, a dependency of @tuwaio/sdk).

Import pathRe-exportsReference
@tuwaio/evm-sdk/orbit@tuwaio/orbit-evmorbit.docs.tuwa.io 
@tuwaio/evm-sdk/satellite@tuwaio/satellite-evmsatellite.docs.tuwa.io 
@tuwaio/evm-sdk/pulsar@tuwaio/pulsar-evmpulsar.docs.tuwa.io 
@tuwaio/evm-sdk/siwx@tuwaio/siwx-evmsiwx.docs.tuwa.io 
@tuwaio/evm-sdk/nova-connect@tuwaio/nova-connect/evm (through @tuwaio/sdk)Storybook 

🚀 Usage

'use client'; import { EVMConnectorsWatcher } from '@tuwaio/evm-sdk/nova-connect'; import { pulsarEvmAdapter } from '@tuwaio/evm-sdk/pulsar'; import { createDefaultTransports, satelliteEVMAdapter } from '@tuwaio/evm-sdk/satellite'; import { NovaConnectProvider } from '@tuwaio/sdk/nova-connect'; import { createPulsarStore } from '@tuwaio/sdk/pulsar'; import { SatelliteConnectProvider } from '@tuwaio/sdk/satellite'; import { createConfig, injected } from '@wagmi/core'; import type { ReactNode } from 'react'; import { base, mainnet } from 'viem/chains'; const appChains = [mainnet, base] as const; const wagmiConfig = createConfig({ chains: appChains, connectors: [injected()], transports: createDefaultTransports(appChains), }); export const pulsarStore = createPulsarStore({ name: 'my-app-transactions', adapter: [pulsarEvmAdapter(wagmiConfig, appChains)], }); export function Providers({ children }: { children: ReactNode }) { return ( <SatelliteConnectProvider adapter={satelliteEVMAdapter(wagmiConfig, appChains)} autoConnect> <EVMConnectorsWatcher wagmiConfig={wagmiConfig} /> <NovaConnectProvider appChains={appChains}>{children}</NovaConnectProvider> </SatelliteConnectProvider> ); }

createDefaultTransports uses the public, rate-limited RPC URLs of the viem chains; pass your own transports in production. The complete app, with Solana, Nova Transactions, SIWX and Quasar, is the Full-Stack React guide .


🗄️ Browser Storage

@tuwaio/evm-sdk saves nothing itself. The EVM packages use the localStorage keys of Satellite Connect and Pulsar, listed on the @tuwaio/sdk page; @tuwaio/satellite-evm reads satellite-connect:impersonatedAddress for its impersonated development connector.

🌐 External Services

@tuwaio/evm-sdk sends no requests itself. The re-exported packages contact the RPC transports of your wagmi config (balances, transaction tracking), the RPC of Ethereum Mainnet for ENS names and avatars, Pimlico or your bundler for ERC-4337 transactions, and the Safe Transaction Service for Safe transactions. Each package page lists the hosts: satellite-evm , pulsar-evm , orbit-evm , siwx-evm .


📄 License

Licensed under the Apache-2.0 License. See the LICENSE  file for details.

Last updated on