Wallet-as-a-ServiceDeveloper-controlledOverview

Developer-Controlled Wallets

Developer-controlled wallets are programmatic wallets you create and manage from your backend. Use them for automated payment processing, token distribution, smart contract interactions, AI-powered transactions, and any workflow that requires on-chain operations without manual user approval.

What can you build with developer-controlled wallets?

Use CaseDescription
Payment processingAccept deposits and process payouts automatically
Token distributionDistribute rewards, airdrops, or loyalty points at scale
Smart contract interactionsExecute transactions on behalf of your application
AI agentsEnable autonomous agents to make on-chain decisions
GamingHandle in-game asset transfers and NFT purchases
SubscriptionsAutomate recurring blockchain payments
Transaction sponsorshipPay fees on behalf of your users

Key Benefits

BenefitDescription
Full automationNo manual approval needed for transactions
Programmatic controlCreate, retrieve, and use wallets via API
Secure key managementPrivate keys encrypted with your Entity Secret
Self-custodyYou control all wallets; UTXOS cannot access funds
Multi-chain supportCardano, Bitcoin, and Spark from a single API
⚠️

Developer-controlled wallets must be integrated on your backend only. Never expose your Entity Secret or API keys to client-side code.

How are developer-controlled wallets secured?

Developer-controlled wallets use asymmetric encryption to protect private keys:

  1. You generate a public-private key pair (Entity Secret) in the dashboard
  2. Wallet creation encrypts each wallet’s private key with your public key
  3. UTXOS stores only the encrypted private key
  4. You decrypt using your private key when signing transactions

This means:

  • UTXOS cannot access your wallet funds
  • Only someone with your Entity Secret can sign transactions
  • Losing your Entity Secret means losing access to all wallets
🚫

Critical: Store your Entity Secret private key securely. UTXOS cannot recover lost Entity Secrets. If compromised, an attacker can access all your wallets.

Quick Start

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, // Entity Secret
  network: "testnet",
});
 
// Create a new wallet
const walletInfo = await sdk.wallet.createWallet();
console.log(`Created wallet: ${walletInfo.id}`);
 
// Retrieve and use the wallet
const { cardanoWallet } = await sdk.wallet.getWallet(walletInfo.id, "cardano");
const address = await cardanoWallet.getChangeAddress();
console.log(`Wallet address: ${address}`);

Comparison: Developer vs User Wallets

AspectDeveloper-ControlledUser-Controlled
Key custodyDeveloper holds Entity SecretUser holds via Shamir shares
Transaction approvalAutomatic (programmatic)Requires user signature
IntegrationBackend onlyFrontend with SDK
Use caseAutomation, backend servicesEnd-user wallets
RecoveryEntity Secret backupUser recovery flow

Next Steps