Wallet as a Service
UTXOS Wallet-as-a-Service (WaaS) is a self-custody wallet SDK that lets your users sign in with social accounts and start transacting immediately. No seed phrases, no browser extensions, no cryptocurrency knowledge required.

Why use a wallet as a service?
Traditional Web3 wallets create friction that blocks mainstream adoption:
| Challenge | Impact |
|---|---|
| Browser extensions required | Users must install unfamiliar software |
| Seed phrase management | 12-24 words users can lose or expose |
| Complex interfaces | Intimidating UX for non-crypto users |
| Phishing vulnerability | Users tricked into entering keys on malicious sites |
| No recovery options | Lost keys mean permanently lost funds |
UTXOS WaaS eliminates these barriers while maintaining true self-custody.
Key Features
| Feature | Description |
|---|---|
| Self-custody | Users own their private keys. Neither you nor UTXOS can access funds. |
| Social login | Google, Discord, Twitter, Apple, or Email OTP authentication |
| No seed phrases | Keys are split using Shamir’s Secret Sharing and reconstructed only during signing |
| Recoverable | Users can recover wallets on new devices using their authentication and security answers |
| Exportable | Users can export mnemonic phrases to any compatible wallet at any time |
| White-label | Customize colors, logos, and branding to match your application |
| CIP-30 compatible | Works with existing Cardano tooling and dApps |
Your users maintain full control. They can export their keys and leave at any time with their assets.
How It Works
- User signs in with a social provider (Google, Discord, etc.)
- Wallet creates a private key and splits it into three encrypted shares
- Shares are distributed: one on the user’s device, one with UTXOS (encrypted), one for recovery
- During signing, two shares are combined in an isolated iframe on the user’s device
- After signing, the key is immediately discarded from memory
The private key never exists as a complete entity except momentarily during signing, in an isolated browser context that your application cannot access.
Security Architecture
UTXOS WaaS uses Shamir’s Secret Sharing (2-of-3) to protect private keys:
| Share | Storage | Protection |
|---|---|---|
| Device share | User’s browser (isolated iframe) | Passkey or spending password |
| Auth share | UTXOS servers | Encrypted, requires valid JWT |
| Recovery share | UTXOS servers | Passkey or security question answer |
Any two shares can reconstruct the key. This provides both security (no single point of compromise) and recoverability (losing one share does not mean losing access).
If a user loses access to their passkey and forgets their recovery answer, their wallet cannot be recovered. UTXOS cannot decrypt shares on behalf of users.
Supported Chains
| Chain | Status | Features |
|---|---|---|
| Cardano | Available | Full wallet functionality, native tokens, NFTs |
| Bitcoin | Available | Send, receive, and sign transactions |
| Spark | Available | Layer 2 transactions |
Integration Options
User-Controlled Wallets
For applications where end-users own and control their wallets:
import { Web3Sdk } from "@utxos/sdk";
const sdk = new Web3Sdk({
projectId: process.env.NEXT_PUBLIC_UTXOS_PROJECT_ID,
});
// User authenticates and gets a wallet
const wallet = await sdk.wallet.connect();
// User can now sign transactions
const signedTx = await wallet.cardano.signTx(unsignedTx);Developer-Controlled Wallets
For backend automation, payment processing, or AI agents:
import { Web3Sdk } from "@utxos/sdk";
const sdk = new Web3Sdk({
projectId: process.env.NEXT_PUBLIC_UTXOS_PROJECT_ID,
apiKey: process.env.UTXOS_API_KEY,
privateKey: process.env.UTXOS_PRIVATE_KEY,
network: "testnet",
});
// Create a wallet programmatically
const walletInfo = await sdk.wallet.createWallet();
// Retrieve and use the wallet
const { cardanoWallet } = await sdk.wallet.getWallet(walletInfo.id, "cardano");Quick Start
Frequently asked questions
Are UTXOS wallets truly self-custody?
Yes. Private keys are split into three shares using Shamir’s Secret Sharing. Neither you nor UTXOS can access user funds. Users can export their mnemonic phrase and leave at any time.
What happens if a user loses their device?
Users recover their wallet using their authentication provider (Google, Discord, etc.) combined with their passkey or recovery answer. The wallet address stays the same after recovery.
Can users use existing CIP-30 browser wallets?
Yes. UTXOS works alongside existing Cardano browser wallets. Your application can support both UTXOS wallets and traditional CIP-30 wallets.
What authentication providers are supported?
Google, Discord, X (Twitter), Apple, and Email OTP. Custom OAuth credentials are available on Pro and Scale plans.
Pricing
| Plan | MAUs | Features |
|---|---|---|
| Base | 100 | All wallet features, default OAuth |
| Pro | 1,000 | Custom OAuth credentials |
| Scale | 10,000+ | Third-party auth, dedicated support |
See Pricing for full details.