Local-first multichain wallet + bridge orchestration core for Runelabs/OpenClaw.
A user asks in plain language:
- "set up wallet for Starknet"
- "bridge 250 USDC from Base to Starknet"
- "fund Ponziland wallet and execute"
OmniWallet handles wallet provisioning, bridge route selection, policy enforcement, and execution.
- EVM
- Solana
- Bitcoin
- Starknet
- Private keys are non-exportable from signer interface
- Agent never receives raw keys
- Every tx passes policy checks
- Bridge providers allowlisted
- High-value flows require human approval gate
See: docs/SECURITY.md
pnpm install
pnpm verify
pnpm test:e2e
pnpm build
pnpm dev setup-main-wallets
pnpm dev ensure-wallet --chain starknet
pnpm dev bridge-quote --from evm --to starknet --token USDC --amount 250- Strict TypeScript (
noImplicitAny+ strict mode) - ESLint + Prettier enforced
- Unit + E2E required before merge
- CI runs verify pipeline on every PR
- Architecture docs required for core modules
We run user-like end-to-end flows, not only unit tests.
test/e2e/omni.e2e.spec.tssimulates full user lifecycle:- setup wallet on each chain
- fetch balances
- request bridge quote
- execute policy-checked tx
test/e2e/liveis reserved for real testnet integration (opt-in)
- Local signer daemon with locked key material
- Adapter implementations for real chains/providers
- Bridge execution layer (Stargate/Orbiter/Layerswap)
- OpenClaw skill packaging + command adapters