Wallet-as-a-Service

The new money stack starts here

Run onchain operations and launch financial services,
for you and the businesses you power.

Wallet-as-a-Service interface
One core for every business

Run treasury, trading, tokenization, payments, and user flows under one company-wide wallet layer.

Move at production speed

Launch wallets in milliseconds. Add new chains in days. Scale from sandbox to millions of accounts.

Control every workflow

Every intent must be signed and go through policies, quorums, whitelists, organizations, and more.

Deploy on your own terms

SaaS, hybrid, or on-premises. Meet your regulatory requirements without changing the vendor stack.


Wallets are the new
bank accounts

Wallets that mirror your org chart. Structure wallet fleets by customer, entity, product, or strategy. Every wallet has an owner, a purpose, and a place in your architecture.

Tags & metadata

Classify wallets by product, segment, geography, asset class, or risk band. Search, audit, and operate groupings of any size.

Sub-organizations

Isolate wallets by client, entity, or partner. Each environment carries its own users, policies, and controls.

Lifecycle

Create, freeze, archive, migrate, and recover wallets via API. Every state change is tracked, assignable, and reversible.

Wallets dashboard

One API for every
business model

Cover every customer relationship from one extensible layer — B2B, B2B2C, B2B2B — without rebuilding the stack.

Wallet hierarchies

Group wallets into treasuries, books, portfolios, or master-sub models. Apply policies, reporting, and reconciliation top down.

White-label

Provision wallets for your customers, partners, or their users. Embedded in your product, branded as yours.

Ownership & isolation

Isolate clients, roles, and activity down to the key. Bind wallets to users, orgs, sub-orgs, or teams. Govern from the top.

Wallet API interface

Choose who
holds the keys

Configure wallet control by product, user journey, regulatory model, or operational risk. One platform, every custody model.

Org-controlled

Wallets owned by your institution. Run treasury, payments, trading, custody, and settlement under your own keys.

User-controlled

Wallets owned by end users through passkeys, biometrics, hardware, or passwords. Your UX, their keys.

Hybrid

Combine institutional controls, user credentials, and policy enforcement for products that require shared responsibility.

Wallet custody and users

Built for humans,
systems, and agents

Configure how every wallet is accessed and operated. User driven, policy driven, service driven, or fully autonomous, all within the limits you set.

User-operated

Employees and end users initiate activity through governed authentication and approval flows.

Service-operated

Automations run backend operations like settlement, rebalancing, sweeping, and scheduled processes.

Agent-operated

AI transacts under strict permissions, policy guardrails, hard limits, and immutable audit trails.

Systems and automation

Discover how Bridge powers
global stablecoin payments.

Stripe powers global stablecoin payments and moves billions of dollars around the world for companies like Klarna, Coinbase, SpaceX, Remitly, and Shopify, using DFNS.

Not only did we weather the incident, we came out of it with a healthier, faster, and more reliable system than a week earlier. DFNS was a big part of that.

Global stablecoin payouts
Transaction routing
Redundant RPC nodes
Automated workflows
Ryan Fogle Founding Engineer, Bridge

Four steps to production

No long onboarding. No legacy stack to unwind. Build, govern, and ship in days.

Lock down your perimeter

Create a service account. Bind a credential. Scope the permissions. Every request is signed before it touches a wallet.

const serviceAccount = await dfnsApi.auth.createServiceAccount({
  body: {
    name: "Payout service",
    permissionId: "pm-treasury-operator",
    publicKey: "-----BEGIN PUBLIC KEY-----\n..."
  }
});

// Store the credentialId and use the private key to sign future requests
Spin up a service account. Attach a permission set. Store the credential. Hit the sandbox before you hit production.

Create your first wallets

One call. Any network. Funded and addressable in under a second. Scale from one to one billion without rewriting a line.

import { DfnsApiClient } from "@dfns/sdk";

const wallet = await dfnsApi.wallets.createWallet({
  body: {
    network: "Solana",
    name: "USDC payout wallet",
    tags: ["payouts", "production"]
  }
});

// wallet.id, wallet.address, wallet.status, wallet.signingKey
Create wallets. Tag them. Group them. Inherit the security model you set once at the org level.

Code in the rules

Velocity limits. Address allowlists. M-of-N quorums. ABI-aware checks. Write the policy once. It runs on every wallet that inherits it.

const policy = await dfns.policies.createPolicy({
  body: {
    name: 'Large Transaction Approval',
    activityKind: 'Wallets:Sign',
    rule: {
      kind: 'TransactionAmountLimit',
      configuration: { limit: '100000', currency: 'USD' }
    },
    action: {
      kind: 'RequestApproval',
      approvalGroups: [{
        name: 'Treasury',
        quorum: 2,
        approvers: { userId: { in: ['us-xxx-1', 'us-xxx-2', 'us-xxx-3'] } }
      }],
      autoRejectTimeout: 86400
    },
    status: 'Active'
  }
})
Define policies. Attach them. Assign approvers. Watch a transaction fire end-to-end on testnet before moving into production.

Sign, broadcast, settle

Tracked every step. One call composes, simulates, evaluates policy, collects approvals, signs, broadcasts, and tracks delivery.

const transfer = await dfnsApi.wallets.transferAsset({
  walletId: "wa-7g3hf-8sj2k-0a9d8f7g6h5j4k3l",
  body: {
    kind: TransferKind.Erc20,
    to: "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb1",
    amount: "1000000",
    contract: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
    idempotencyKey: "payout-2026-05-21-jdoe-001"
  }
});

// transfer.id, transfer.status, transfer.txHash, transfer.policyEvaluation
Initiate transactions. Listen to webhooks. Handle exceptions through idempotent, replay-proof APIs.
Org → Service Accounts → New Service Account
Org → Service Accounts → New Service Account
Wallets → New Wallet
Wallets → New Wallet
Org → Policies → New Policy
Org → Policies → New Policy
Wallets → Activity
Wallets → Activity
Contact us