Skip to Content
Introduction

Introduction

Orbit Utils

Orbit Utils is the Stage 1 primitives layer of the TUWA ecosystem: headless, framework-agnostic helpers for talking to EVM and Solana networks. It provides cached RPC clients, wallet discovery, connection persistence, name resolution and ERC-4337 smart accounts as plain functions and types, with no UI, state management or framework bindings.


🏛️ Where Orbit Fits in TUWA

TUWA is built in stages. Each stage builds on the ones below it, and Orbit sits at the bottom:

StageProjectsRole
1 — Core Auth & PrimitivesSIWX , Orbit UtilsCAIP-122 authentication and multi-chain primitives
2 — State & ConnectionSatellite Connect , Pulsar Wallet connection state machine and transaction tracking
3 — Backend & SyncQuasar Cloud  or self-hosted Quasar Community Transaction indexing and cross-device sync
4 — User InterfaceNova UI Kit React design system and components

Orbit depends on nothing else in TUWA. Higher layers import its types and helpers (for example, OrbitAdapter identifies the chain family in Satellite Connect and Pulsar), never the other way around. You can also use Orbit on its own in any app.


🧭 Principles

  1. Headless and framework-agnostic: no CSS, components, hooks or framework bindings. Everything is a plain function or type, usable from React, Vue, Svelte, Solid, Node.js or vanilla JavaScript.
  2. Modern Web3 libraries only: viem and @wagmi/core for EVM, @solana/kit and the Wallet Standard for Solana. No ethers.js, web3.js, @solana/web3.js or gill.
  3. Self-custody, no Wallet-as-a-Service: wallets stay with the user. Account abstraction uses open ERC-4337 infrastructure (Solady smart accounts, any Pimlico-compatible bundler) instead of proprietary wallet platforms.
  4. Peer dependencies, not bundled SDKs: chain libraries are peer dependencies, so your app controls their versions and keeps a single copy.
  5. Transparent side effects: helpers document when they write to localStorage, cache in memory or call an external service. The Solana package lists every third-party host it contacts.

🧩 Packages

PackageLayerProvidesPeer dependencies
@tuwaio/orbit-coreL1Multi-chain types, connector and address helpers, error normalization, SSR-safe connection storage—
@tuwaio/orbit-evmL2Cached viem clients, chain switching, ENS resolution, ERC-4337 smart accounts (Solady + Pimlico)viem 2.x, @wagmi/core 3.x
@tuwaio/orbit-solanaL2Cached @solana/kit RPC clients, Wallet Standard discovery, cluster and explorer helpers, SNS lookups@tuwaio/orbit-core, @solana/kit ≥ 8.2, @wallet-standard/* 1.x

Each package page shows the package README followed by a reference of every export, generated from the TypeScript source.


💾 Installation

Install the core package and the chain packages your app targets:

# L1 core pnpm add @tuwaio/orbit-core # L2 EVM pnpm add @tuwaio/orbit-evm @wagmi/core viem # L2 Solana pnpm add @tuwaio/orbit-solana @tuwaio/orbit-core @solana/kit @wallet-standard/app @wallet-standard/ui-core @wallet-standard/ui-registry

📚 Next Steps

  • Browse the Packages section for usage examples and the full reference of each package.
  • Follow the ERC-4337 guide  for an end-to-end smart account flow with Orbit EVM, Pulsar and Quasar.
  • Find more ecosystem guides at docs.tuwa.io/guides .
  • Read the source on GitHub .
Last updated on