Skip to main content
Version: develop

Self custodial wallet

Build a wallet where users hold their own keys, their balances and transaction history are private from the public, and they can still participate in public DeFi on Base — without choosing between any of these.

The problem

A team shipping a self-custodial wallet today picks between two options:

  • A public-chain wallet. Every user's balance, every transfer, every counterparty is on a public ledger. Anyone — a competitor, an employer, an ex-partner — can search any address and read it.
  • An existing privacy protocols. These force tradeoffs on slow transaction speed, high cost, long on-device proving time and limited DeFi access. These systems often sit outside the regulatory perimeter. Integrating one pushes legal and compliance risk onto the wallet builder.

You should be able to ship self-custody and privacy without making your users live on a public bank statement, without taking on a regulatory liability, and without a wallet that feels slow, expensive, or isolated from the rest of the on-chain world.

What you can offer your users

  • Private balances and history. Hidden from everyone except the user.
  • Private peer-to-peer transfers between users of the wallet (or any other wallet on the same protocol).
  • Public-side receive. Users can be paid in normal ERC-20s from exchanges, employers, or other wallets; funds land encrypted automatically.
  • Withdrawals to any public address. Off-ramp, send to a friend on a normal wallet, pay an invoice — all supported.
  • View-key sharing. Users can grant read access to their accountant, tax tool, or auditor without giving up signing authority.
  • Full key ownership. The wallet can be uninstalled and reconstituted from the user's seed.

On-ramp and off-ramp

Users get money in and out in whatever they already hold.

  • Fiat on/off ramps. Our partners support deposits and withdrawals across multiple fiat currencies. Funds arrive directly in the user's encrypted balance — no intermediate transfer, no detour through a separate exchange account.
  • On-chain top-ups. Users can fund from crypto they already hold — USDC, other stablecoins, public-chain assets — by sending from any wallet they're already using and swapping to one of the ZK Stablecoins.

Encrypted wallet isn't an island: users start with what they have, and exit to the rail they need.

DeFi compatibility

The encrypted balance is the user's private home base. To use public DeFi — DEX swaps, lending, restaking, anything where the protocol is on-chain and public — the wallet generates a fresh stealth address for that interaction, funds it from the user's encrypted balance, executes the DeFi action on the public chain, and routes the output back into the user's encrypted balance.

ZK Stables run on Base, which is where most consumer DeFi liquidity actually lives — DEXes, lending markets, restaking, prediction markets. Your users get a private wallet and access to the ecosystem they actually want to use.

Built for production UX

The underlying SDK is built for the platforms a consumer wallet actually ships on:

  • Mobile and web. First-class support on both via easy to integrate SDK.
  • Fast transactions. Cryptography optimized for real-world devices. Transactions execute in real time. No need to block UI for expensive calculations.
  • Gas abstraction. Users don't have to hold ETH to transact. Fees can be paid in the asset the user is already holding, or sponsored by you, so onboarding doesn't require a separate gas-funding step.

Our bar is to enable experiences that feel like a fintech app.