Core SDK (@tuwaio/sdk)
@tuwaio/sdk is Layer 8 (L8) of the TUWA ecosystem — the unified client UI and Logic foundation. It packages Orbit (primitives), Pulsar (transaction tracking), Satellite (wallet connections), and Nova (React UI components) into clean, tree-shakeable subpaths.
Instead of installing and managing separate decoupled packages, @tuwaio/sdk gives you a single, version-aligned entrypoint for building Web3 interfaces.
🏛️ Ecosystem Layers & Dedicated Documentation
The core SDK bundles the complete suite of TUWA client packages. For full API references, state machine specifications, and component catalogs of each underlying layer, explore their dedicated documentation portals:
| Layer | Subpath | Full Documentation & Catalog |
|---|---|---|
| Orbit Utils | @tuwaio/sdk/orbit | 💫 Orbit Utils Docs — Framework-agnostic multi-chain communication primitives. |
| Satellite Connect | @tuwaio/sdk/satellite | 📡 Satellite Connect Docs — Headless wallet state machine & SIWE auth. |
| Pulsar Engine | @tuwaio/sdk/pulsar | ⚡ Pulsar Engine Docs — Transaction lifecycle state tracking engine. |
| Nova UI Components | @tuwaio/sdk/nova-connect | 🎨 Nova UI Storybook — Interactive component catalog and visual design system. |
💾 Installation
Install @tuwaio/sdk alongside React peer dependencies:
pnpm add @tuwaio/sdk react react-domNote: For network-specific transports and wallet watchers, also install either
@tuwaio/evm-sdkfor Ethereum/EVM or@tuwaio/solana-sdkfor Solana.
🎨 Global Styles Configuration
To style Nova UI components (ConnectButton, transaction toasts, modal dialogs), import the bundled CSS stylesheet into your global CSS file (e.g. src/styles/globals.css) or root layout:
Option A: Complete Bundle Import (Recommended)
In your global CSS file (src/styles/globals.css):
/* src/styles/globals.css */
@import '@tuwaio/sdk/styles/all.css';
/* Optional: if your dApp uses Tailwind CSS v4 */
@import 'tailwindcss';Or directly in your root React layout (src/app/layout.tsx):
// src/app/layout.tsx
import '@tuwaio/sdk/styles/all.css';
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<body>{children}</body>
</html>
);
}Option B: Granular Individual Styles
If you prefer to include only specific module styles:
/* Import individual stylesheets as needed */
@import '@tuwaio/sdk/styles/nova-core.css';
@import '@tuwaio/sdk/styles/nova-connect.css';
@import '@tuwaio/sdk/styles/nova-transactions.css';
/* Optional: if your dApp uses Tailwind CSS v4 */
@import 'tailwindcss';Styling & Tailwind CSS Note: All Nova UI components (
ConnectButton, modals, toasts) ship with fully compiled, self-contained styles inside@tuwaio/sdk/styles/all.css. Installing Tailwind CSS is optional — we use Tailwind utility classes in our code examples for dApp layout structure, but you are free to use any styling solution (CSS Modules, Styled Components, or Plain CSS). If you do use Tailwind CSS v4 in your project, remember to include@import 'tailwindcss';in your global CSS file.
📦 Subpath Entrypoints
@tuwaio/sdk provides clean subpath exports for all underlying ecosystem features. Below are representative examples of key exports across the available subpaths:
// 1. Multi-Chain Primitives (Orbit)
import { OrbitAdapter, getAdapterFromConnectorType } from '@tuwaio/sdk/orbit';
// 2. Wallet Connection State (Satellite)
import { SatelliteConnectProvider, useAccount, useSatelliteConnectStore } from '@tuwaio/sdk/satellite';
// 3. Transaction Tracking Engine (Pulsar)
import { createPulsarStore, createTxInMemoryStore, useInitializeTransactionsPool } from '@tuwaio/sdk/pulsar';
// 4. Connect UI Components (Nova Connect)
import { ConnectButton, NovaConnectProvider } from '@tuwaio/sdk/nova-connect';
import { ConnectButton as StandaloneConnectButton } from '@tuwaio/sdk/nova-connect/components';
// 5. Transaction UI Components (Nova Transactions)
import { TxActionButton } from '@tuwaio/sdk/nova-transactions';
import { NovaTransactionsProvider } from '@tuwaio/sdk/nova-transactions/providers';Note: @tuwaio/sdk exports the full API surface of Satellite, Pulsar, Orbit, and Nova. Refer to the respective documentation links above for complete API signatures.