← agentwallet.md

Privy Server Wallets

Wallet Enterprise
Best for: Headless server-side agent wallets with no UI; backend services managing wallets programmatically
Not ideal for: User-facing wallet UX; self-custody requirements

Key Signals

Key Management
Shamir secret sharing
Chain Support
EVM + Solana
Integration
REST API + TypeScript SDK
Pricing
Usage-based

Features

🖥️
Headless Server Wallets (No UI Needed)
Privy Server Wallets are designed for backend services — no browser, no MetaMask popup, no user interaction required. Agents create, manage, and sign with wallets entirely via API calls from server-side code.
🔐
Shamir Secret Sharing Key Management
Key material is split into cryptographic shares using Shamir's secret sharing scheme and stored across Privy's isolated infrastructure. Reconstruction requires a threshold of shares — no single server or employee can access the full key.
REST API + TypeScript SDK
Full wallet lifecycle (create, sign, send) is available via REST API and a typed TypeScript SDK. Signing requests are asynchronous with webhook callbacks, allowing agents to submit transactions and continue working without blocking.
👥
Embedded Wallet Support
Beyond server wallets, Privy also provides embedded wallets for user-facing apps — useful when an agent system needs both a headless agent wallet and a user-visible wallet under the same authentication layer.

Ratings

Headless Operation
4.8/5
Developer Experience
4.5/5
Key Security
4.4/5
Ease of Setup
4.2/5

Ratings based on Privy developer documentation and TypeScript SDK reference — not end-to-end production testing. Key security reflects Shamir secret sharing model; for TEE-based isolation see Turnkey.

Integration

// Install the Privy server SDK npm install @privy-io/server-auth import { PrivyClient } from "@privy-io/server-auth"; const privy = new PrivyClient( process.env.PRIVY_APP_ID!, process.env.PRIVY_APP_SECRET! ); // Create a server wallet for an agent const { id: walletId, address } = await privy.walletApi.create({ chainType: "ethereum", }); console.log("Agent wallet address:", address); // Sign and send a transaction const { hash } = await privy.walletApi.ethereum.sendTransaction({ walletId, caip2: "eip155:8453", // Base mainnet transaction: { to: recipientAddress, value: parseEther("0.01"), chainId: 8453, }, });

Alternatives & Tradeoffs

Turnkey
TEE-based key isolation with a programmable policy engine — stricter security model for enterprise
Coinbase AgentKit
Open source alternative with LangChain integration; Base-first
Circle Programmable Wallets
Better for USDC-native agent treasury with built-in gas sponsorship