Skip to Content
Packages@tuwaio/sdk

@tuwaio/sdk

NPM Version License

@tuwaio/sdk is the Layer 8 (L8) package of the TUWA SDK: one package for React apps that re-exports the client packages of the TUWA projects under subpaths — Orbit Utils, Pulsar (transaction tracking), Satellite Connect (wallet connection), SIWX (sign-in with a wallet) and Nova UI Kit (connect and transaction components) — with the Nova stylesheets. Chain support comes from its two add-ons, @tuwaio/evm-sdk and @tuwaio/solana-sdk; none of the subpaths below loads EVM or Solana code.


🏛️ Core Capabilities

  • One version to install: the TUWA packages and the libraries they share (zustand, immer, framer-motion, Radix UI, react-toastify, dayjs) are dependencies of @tuwaio/sdk, so a release of the SDK pins a set of TUWA versions that work together. react and react-dom are peer dependencies: the app keeps one copy of React.
  • Subpaths: every subpath re-exports one entry point of a TUWA package, unchanged (see Subpaths). Its reference is on the site of that package.
  • Stylesheets: @tuwaio/sdk/styles/*.css are copies of the compiled stylesheets of Nova Core, Nova Connect and Nova Transactions. The app does not need Tailwind CSS.

💾 Installation

pnpm add @tuwaio/sdk react react-dom

Then add the chains of your app:

# EVM pnpm add @tuwaio/evm-sdk @wagmi/core viem # Solana pnpm add @tuwaio/solana-sdk @solana/kit @wallet-standard/react @wallet-standard/app @wallet-standard/base @wallet-standard/features @wallet-standard/ui @wallet-standard/ui-registry

Do not install the re-exported TUWA packages separately at other versions: two copies of a package with a store or a React context, such as @tuwaio/satellite-react or @tuwaio/nova-connect, do not share their state or their types.

Import the stylesheets once, for example in the global CSS file of the app:

@import '@tuwaio/sdk/styles/all.css';

all.css joins nova-core.css (the --tuwa-* theme variables), nova-connect.css and nova-transactions.css; import them one by one to leave one out.


🧭 Subpaths

Import pathRe-exportsReference
@tuwaio/sdk/orbit@tuwaio/orbit-coreorbit.docs.tuwa.io 
@tuwaio/sdk/pulsar@tuwaio/pulsar-core and @tuwaio/pulsar-reactpulsar-core , pulsar-react 
@tuwaio/sdk/satellite@tuwaio/satellite-core and @tuwaio/satellite-react (its Connector type as SatelliteReactConnector)satellite-core , satellite-react 
@tuwaio/sdk/siwx@tuwaio/siwx-reactsiwx.docs.tuwa.io 
@tuwaio/sdk/siwx/core@tuwaio/siwx-coresiwx.docs.tuwa.io 
@tuwaio/sdk/siwx/server@tuwaio/siwx-serversiwx.docs.tuwa.io 
@tuwaio/sdk/siwx/server-next@tuwaio/siwx-server/nextsiwx.docs.tuwa.io 
@tuwaio/sdk/nova-core@tuwaio/nova-coreStorybook 
@tuwaio/sdk/nova-connect@tuwaio/nova-connectStorybook 
@tuwaio/sdk/nova-connect/components@tuwaio/nova-connect/componentsStorybook 
@tuwaio/sdk/nova-connect/hooks@tuwaio/nova-connect/hooksStorybook 
@tuwaio/sdk/nova-connect/i18n@tuwaio/nova-connect/i18nStorybook 
@tuwaio/sdk/nova-connect/satellite@tuwaio/nova-connect/satelliteStorybook 
@tuwaio/sdk/nova-transactions@tuwaio/nova-transactionsStorybook 
@tuwaio/sdk/nova-transactions/providers@tuwaio/nova-transactions/providersStorybook 
@tuwaio/sdk/styles/*.cssdist/index.css of the three Nova packagesall.css, nova-core.css, nova-connect.css, nova-transactions.css

@tuwaio/sdk/nova-connect/evm and @tuwaio/sdk/nova-connect/solana re-export the chain entry points of Nova Connect for the add-ons; import them as @tuwaio/evm-sdk/nova-connect and @tuwaio/solana-sdk/nova-connect. They need the chain packages that the add-ons install, and going through @tuwaio/sdk makes their chain registration and types apply to the same copy of Nova Connect and Satellite React as the other subpaths.


🚀 Usage

The providers of an EVM app with a connect button:

'use client'; import { EVMConnectorsWatcher } from '@tuwaio/evm-sdk/nova-connect'; import { satelliteEVMAdapter } from '@tuwaio/evm-sdk/satellite'; import { NovaConnectProvider } from '@tuwaio/sdk/nova-connect'; import { ConnectButton } from '@tuwaio/sdk/nova-connect/components'; import { SatelliteConnectProvider } from '@tuwaio/sdk/satellite'; import { createConfig, http, injected } from '@wagmi/core'; import type { ReactNode } from 'react'; import { mainnet } from 'viem/chains'; const appChains = [mainnet] as const; const wagmiConfig = createConfig({ chains: appChains, connectors: [injected()], transports: { [mainnet.id]: http() } }); const adapter = satelliteEVMAdapter(wagmiConfig, appChains); export function Providers({ children }: { children: ReactNode }) { return ( <SatelliteConnectProvider adapter={adapter} autoConnect> <EVMConnectorsWatcher wagmiConfig={wagmiConfig} /> <NovaConnectProvider appChains={appChains}>{children}</NovaConnectProvider> </SatelliteConnectProvider> ); } export function Header() { return <ConnectButton />; }

The full setup — EVM and Solana, transaction tracking with Pulsar and Nova Transactions, SIWX sign-in and Quasar sync — is the Full-Stack React guide . Ready-made apps are in the starter templates .


🗄️ Browser Storage

@tuwaio/sdk saves nothing itself. The re-exported packages use these localStorage keys; each page lists when they are written:

  • orbit-core:lastConnectedConnector, orbit-core:recentlyConnectedConnectorsListHelpers and satellite-connect:impersonatedAddress: the last connection, the recent wallets and the impersonated address (@tuwaio/satellite-core, read by Nova Connect);
  • the name passed to createPulsarStore: the tracked transactions (@tuwaio/pulsar-core);
  • siwx-react:session: the SIWX session shown in the UI (@tuwaio/siwx-react).

🌐 External Services

@tuwaio/sdk sends no requests itself. Of the packages it re-exports, only @tuwaio/nova-core does: it loads network and wallet icons that @web3icons/common does not have from raw.githubusercontent.com (details ). The chain requests (RPC endpoints, ENS, SNS, Pimlico, Safe Transaction Service) come from the chain packages of the add-ons: see @tuwaio/evm-sdk and @tuwaio/solana-sdk. The SIWX endpoints are those of your server.


📄 License

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

Last updated on