The new money stack starts here
Run onchain operations and launch financial services,
for you and the businesses you power.
DFNS provided the secure wallet infrastructure we needed to launch our digital asset custody service for institutional clients.
Read the full storyRun treasury, trading, tokenization, payments, and user flows under one company-wide wallet layer.
Launch wallets in milliseconds. Add new chains in days. Scale from sandbox to millions of accounts.
Every intent must be signed and go through policies, quorums, whitelists, organizations, and more.
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.
Classify wallets by product, segment, geography, asset class, or risk band. Search, audit, and operate groupings of any size.
Isolate wallets by client, entity, or partner. Each environment carries its own users, policies, and controls.
Create, freeze, archive, migrate, and recover wallets via API. Every state change is tracked, assignable, and reversible.
One API for every
business model
Cover every customer relationship from one extensible layer — B2B, B2B2C, B2B2B — without rebuilding the stack.
Group wallets into treasuries, books, portfolios, or master-sub models. Apply policies, reporting, and reconciliation top down.
Provision wallets for your customers, partners, or their users. Embedded in your product, branded as yours.
Isolate clients, roles, and activity down to the key. Bind wallets to users, orgs, sub-orgs, or teams. Govern from the top.
Choose who
holds the keys
Configure wallet control by product, user journey, regulatory model, or operational risk. One platform, every custody model.
Wallets owned by your institution. Run treasury, payments, trading, custody, and settlement under your own keys.
Wallets owned by end users through passkeys, biometrics, hardware, or passwords. Your UX, their keys.
Combine institutional controls, user credentials, and policy enforcement for products that require shared responsibility.
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.
Employees and end users initiate activity through governed authentication and approval flows.
Automations run backend operations like settlement, rebalancing, sweeping, and scheduled processes.
AI transacts under strict permissions, policy guardrails, hard limits, and immutable audit trails.
Discover how Keyrails built its stablecoin payments stack.
"Great natively built-in security around the MPC wallets with an additional on-premise option. They have nailed the pricing structure for payments companies. Extremely well working customer success processes. Great coverage on all blockchains. Overall, great tech that just works. Best I have seen."
Settling high-value import, export, and commodity trade across 100+ emerging markets in hours.
Great coverage on all blockchains with one API.
Define roles, approvals, KYT rules, and limits directly through APIs.
Natively built-in security around the MPC wallets with on-premise option.
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 requestsCreate 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.signingKeyCode 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'
}
})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.policyEvaluationReady to see DFNS in action?
The new core for every company going onchain.
Documentation
APIs, SDKs, and guides for builders.
Pricing
Per-transaction pricing, no hidden fees.