Emmanuel Doji

Portfolio · 2026

000%

All case studies

Rabit Wallet · 2025 — Present · Creator · Maintainer

Rabit — Embedded Wallet SDK with Non-Custodial Recovery

Packages in monorepo
11
Chains supported out of the box
EVM + Solana
License
MIT
Recovery model
2-of-3 Shamir

Why this exists

Every embedded wallet SDK I evaluated forced an unhappy tradeoff: custodial models held keys on a server (regulatory exposure, single point of failure) or seed-phrase models pushed the entire UX problem onto the user. The third option — MPC — was locked behind enterprise contracts. I wanted a wallet layer that was open, non-custodial by default, and didn't require a user to write a 12-word phrase on paper.

What Rabit does

Rabit splits the user's private key into three Shamir shares: one on-device, one in a provider-side encrypted vault, one held by a recovery service. Any two reconstruct the key. No single party — including the integrator — can spend.

The monorepo:

  • @rabit/core — share splitting, key reconstruction, message signing primitives
  • @rabit/react — provider, hooks (useWallet, useTransaction, useRecovery)
  • @rabit/evm and @rabit/solana — chain adapters
  • @rabit/connectors — RainbowKit / wagmi interop so existing dApps adopt incrementally
  • @rabit/smart-accounts — ERC-4337 abstraction wrapper
  • @rabit/onramp — fiat → crypto via Transak / MoonPay
  • @rabit/ui, @rabit/keys, @rabit/types — supporting packages
  • create-rabit-appnpx create-rabit-app scaffolder

Design decisions

Why Shamir, not MPC? MPC requires multi-round signing protocols; Shamir reconstructs the key in a single round. For consumer wallets the constant-factor latency matters more than MPC's marginal theoretical advantage.

Why a monorepo with 11 packages? Each chain adapter, each connector, each onramp is a separate package so teams install only what they need. The full SDK is ~50KB gzipped if you pull everything; ~12KB if you stick to EVM-only.

Why MIT? OpenZeppelin, ethers, viem, and wagmi are all MIT-licensed. The wallet layer shouldn't be the place teams hit a license boundary.

What's in the public repo

CONTRIBUTING, SECURITY (including disclosure policy), Code of Conduct, full Changesets release flow with automated CHANGELOG generation, semver-aware version bumping. Anyone shipping a wallet SDK can fork the architecture.