Wallet-as-a-ServiceOverview

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.

Wallet authentication example

Why use a wallet as a service?

Traditional Web3 wallets create friction that blocks mainstream adoption:

ChallengeImpact
Browser extensions requiredUsers must install unfamiliar software
Seed phrase management12-24 words users can lose or expose
Complex interfacesIntimidating UX for non-crypto users
Phishing vulnerabilityUsers tricked into entering keys on malicious sites
No recovery optionsLost keys mean permanently lost funds

UTXOS WaaS eliminates these barriers while maintaining true self-custody.

Key Features

FeatureDescription
Self-custodyUsers own their private keys. Neither you nor UTXOS can access funds.
Social loginGoogle, Discord, Twitter, Apple, or Email OTP authentication
No seed phrasesKeys are split using Shamir’s Secret Sharing and reconstructed only during signing
RecoverableUsers can recover wallets on new devices using their authentication and security answers
ExportableUsers can export mnemonic phrases to any compatible wallet at any time
White-labelCustomize colors, logos, and branding to match your application
CIP-30 compatibleWorks 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

  1. User signs in with a social provider (Google, Discord, etc.)
  2. Wallet creates a private key and splits it into three encrypted shares
  3. Shares are distributed: one on the user’s device, one with UTXOS (encrypted), one for recovery
  4. During signing, two shares are combined in an isolated iframe on the user’s device
  5. 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:

ShareStorageProtection
Device shareUser’s browser (isolated iframe)Passkey or spending password
Auth shareUTXOS serversEncrypted, requires valid JWT
Recovery shareUTXOS serversPasskey 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

ChainStatusFeatures
CardanoAvailableFull wallet functionality, native tokens, NFTs
BitcoinAvailableSend, receive, and sign transactions
SparkAvailableLayer 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

PlanMAUsFeatures
Base100All wallet features, default OAuth
Pro1,000Custom OAuth credentials
Scale10,000+Third-party auth, dedicated support

See Pricing for full details.