Universal Web3 wallet connection system with multi-chain support for modern dApps. Integrates EVM and Solana wallets seamlessly.
Satellite Connect is a comprehensive ecosystem for Web3 wallet integrations, providing a unified interface for connecting and managing wallets across different blockchain networks. Built with TypeScript and modern tooling, it offers a seamless developer experience for both EVM and Solana blockchain applications.
The Satellite Connect ecosystem consists of several packages:
-
- Foundation package with universal wallet interface
- Chain-agnostic connection management
- TypeScript-first development
-
- React components and hooks
- Full React 19+ support
-
@tuwaio/satellite-siwe-next-auth
- Secure, server-side SIWE (Sign-In with Ethereum) authentication
- Next.js App Router compatible API handlers
- Uses Iron Session for secure, encrypted cookie management
-
- EVM wallet integrations (MetaMask, WalletConnect, etc.)
- Built on Wagmi and Viem
- Multi-chain EVM support
-
- Solana wallet support (Phantom, Solflare, etc.)
- Built on Gill and @wallet-standard
- Universal Interface: Single API for all supported wallets
- Multi-Chain Support:
- EVM networks (Ethereum, Polygon, etc.)
- Solana (Mainnet, Devnet, Testnet)
- Modern Architecture:
- React 19+ support
- TypeScript 5.9+
- Tree-shaking optimization
- Mobile Ready:
- Mobile wallet support
- Universal links handling
# Core functionality
pnpm add @tuwaio/satellite-core # see peer deps to add all packages correct
# React integration
pnpm add @tuwaio/satellite-react # see peer deps to add all packages correct
# Chain-specific adapters
pnpm add @tuwaio/satellite-evm # For EVM support
pnpm add @tuwaio/satellite-solana # For Solana supportimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { satelliteEVMAdapter, createDefaultTransports } from '@tuwaio/satellite-evm';
import { SatelliteConnectProvider } from '@tuwaio/satellite-react';
import { EVMConnectorsWatcher } from '@tuwaio/satellite-react/evm';
import { SolanaConnectorsWatcher } from '@tuwaio/satellite-react/solana';
import { satelliteSolanaAdapter } from '@tuwaio/satellite-solana';
import { WagmiProvider } from 'wagmi';
import { injected } from '@wagmi/connectors';
import { ReactNode } from 'react';
import { createConfig, http } from '@wagmi/core';
import { mainnet, sepolia } from 'viem/chains';
import type { Chain } from 'viem/chains';
export const appEVMChains = [
mainnet,
sepolia,
] as readonly [Chain, ...Chain[]];
export const wagmiConfig = createConfig({
connectors: [injected()],
transports: createDefaultTransports(appEVMChains), // Automatically creates http transports
chains: appEVMChains,
ssr: true, // Enable SSR support if needed (e.g., in Next.js)
});
export const solanaRPCUrls = {
devnet: 'https://api.devnet.solana.com',
};
const queryClient = new QueryClient();
export function Providers({ children }: { children: ReactNode }) {
return (
<WagmiProvider config={wagmiConfig}>
<QueryClientProvider client={queryClient}>
<SatelliteConnectProvider
adapter={[satelliteEVMAdapter(wagmiConfig), satelliteSolanaAdapter({ rpcUrls: solanaRPCUrls })]}
autoConnect={true}
>
<EVMConnectorsWatcher wagmiConfig={wagmiConfig} />
<SolanaConnectorsWatcher />
{children}
</SatelliteConnectProvider>
</QueryClientProvider>
</WagmiProvider>
);
}Contributions are welcome! Please read our main Contribution Guidelines.
If you find this library useful, please consider supporting its development. Every contribution helps!
This project is licensed under the Apache-2.0 License - see the LICENSE file for details.
