Treasury Management

Your treasury control tower

See every position. Govern every move. Put idle assets to work.

Treasury Management interface
One control tower

Balances, positions, approvals, automations, audit. Every wallet, every chain, one screen.

Govern like an institution

Quorums, velocity caps, allowlists, role-based access. Codified treasury policy on every wallet.

Make idle assets earn

Swaps, staking, yield allocations, exchange routing. From the dashboard, on demand, under policy.

Programmable beneath

Every action is an API call. Sweep and reconcile automatically. Plug into your ERP and back office.


Consolidate

One source of truth
for every position

See balances, flows, and positions across wallets, entities, currencies, and chains in real time.

View all positions
Live positions

Track token balances across 100+ networks. Aggregate by entity, asset, business line, or counterparty.

Deposit addresses

Assign unique addresses to customers, vendors, or desks. Inbound funds reconcile themselves.

Asset visibility

Follow funds across wallets and entities. Every movement has a source, destination, and approval trail.

Wallets dashboard
Govern

Enforce controls
before assets move

Quorums, limits, allowlists, and roles are enforced natively. Governance is the gate every transfer goes through.

Configure controls
Approval routing

Route approvals by amount, asset, destination, or entity. Initiators cannot approve their own transfers.

Transaction limits

Set caps, time windows, and frequency rules. Stop abnormal outflows before they reach the chain.

Passkeys

Approve with WebAuthn and FIDO2 passkeys. No seed phrases. No shared credentials.

Wallets dashboard
Mobilize

Move assets
without leaving the platform

Sweep, batch, swap, stake, route, and allocate assets from one governed treasury layer.

Move assets
Sweeps and batches

Consolidate funds on schedule or threshold. Batch payouts with fee sponsors built in.

Swaps & staking

Use integrated providers for swaps, staking, and allocations. Every action is policy-checked.

Exchange routing

Move between wallets, exchanges, and fiat rails without losing visibility or control.

Wallets dashboard
Reconcile

Close the books
from your current system

Every event is logged, assigned, and exportable. Reconciliation is continuous, not a monthly rebuild.

Export reports
Reports & exports

Generate positions, histories, and reconciliation files by entity, tag, date, or chain.

Accounting sync

Map wallets and movements into your ERP or accounting system.

Audit log

Track initiation, approval, signing, and broadcast. Give auditors a signed record, not a spreadsheet story.

Wallets dashboard

Discover how Yolo Group runs treasury on DFNS.

“DFNS helps us manage wallet and treasury operations with the speed and control we need. The platform brings together strong infrastructure, useful integrations, and a responsive technical team that makes implementation much easier.”

One control tower

Balances, positions, approvals, automations, audit. Every wallet, every chain, one screen.

Govern like an institution

Quorums, velocity caps, allowlists, role-based access. Codified treasury policy on every wallet.

Make idle assets earn

Swaps, staking, yield allocations, exchange routing. From the dashboard, on demand, under policy.

Programmable beneath

Every action is an API call. Sweep and reconcile automatically. Plug into your ERP and back office.

Mitul Manish Head of Mobile, Yolo Group

Four steps to a treasury you can run

From your first wallet to agent fleets. The dashboard handles it first. APIs take over at scale.

See every position in one place.

Pull balances and flows across every wallet, entity, and chain into one view.

// Aggregate positions across the whole treasury, grouped by entity and asset
const positions = await dfnsApi.wallets.listBalances({
  query: {
    walletTags: { hasAny: ["treasury", "operating", "reserves"] },
    groupBy: ["entity", "asset"]
  }
});

// positions.items[i] — entity, asset, network, balance, valueUsd
// The number here is the number in the wallet. Live, not cached.
Start with the consolidated view. Group by the dimension your treasury committee reviews. E.g., entity, currency, business line.

Codify the policy your auditors expect.

Approval matrices, caps, allowlists, roles. Configure visually or in code. Same engine underneath.

// Every transfer above $100k requires 2-of-3 from the Treasury Council
const policy = await dfnsApi.policies.createPolicy({
  body: {
    name: "Large Transfer Approval",
    activityKind: "Wallets:Sign",
    rule: {
      kind: "TransactionAmountLimit",
      configuration: { limit: "100000", currency: "USD" }
    },
    action: {
      kind: "RequestApproval",
      approvalGroups: [{
        name: "Treasury Council",
        quorum: 2,
        approvers: { userId: { in: ["us-xxx-1", "us-xxx-2", "us-xxx-3"] } }
      }],
      autoRejectTimeout: 86400
    },
    status: "Active"
  }
});
Start conservative. 2-of-3 above $10k, allowlist-only on outbound. Loosen as comfort grows, it's easier than recovering from an incident.

Move it, convert it, put it to work.

Sweep, batch, swap, stake, route, and allocate across an open marketplace where every counterparty is replaceable.

// Allocate idle USDC into a yield-bearing position
await dfnsApi.allocations.createAllocation({
  walletId: "wa-treasury-usdc-operating-7g3hf8sj2k0a9d",
  body: {
    protocol: "0fns",
    asset: "USDC",
    amount: "500000000000"  // 500,000 USDC (6 decimals)
  }
});

// Same marketplace: Swaps (Uniswap, UniswapX), Staking (Figment),
// Exchanges (Kraken, Binance, Coinbase Prime), any DeFi via WalletConnect.
// Automated sweeps and batch payouts run on a schedule, under the same policies.
Sweep overflow nightly. Batch payouts into one operation. Move reserves into yield. Open by design—no locked counterparty list.

Close the books from the platform you operate in.

Every movement logged with full provenance, mapped to your accounting stack, exportable on demand.

// Stream every treasury event to your back office for continuous reconciliation
await dfnsApi.webhooks.createWebhook({
  body: {
    url: "https://finance.yourbank.com/dfns/events",
    events: [
      "wallets.transaction.confirmed",
      "policies.approval.requested",
      "policies.approval.resolved",
      "allocations.balance.updated"
    ]
  }
});

// Each event: signed payload, idempotency key, full provenance — booked automatically.
// Or pull reconciliation files on demand:
const report = await dfnsApi.reports.exportTransactions({
  query: { walletTags: { hasAny: ["treasury"] }, dateFrom: "2026-05-01", format: "csv" }
});
Stream webhooks for continuous reconciliation. Pull reports for month-end. Hand auditors a signed record, not a reconstruction.
Treasury → Positions → Group by Entity / Asset / Chain
Treasury → Positions → Group by Entity / Asset / Chain
Org → Policies → New Policy → Approval Matrix Builder
Org → Policies → New Policy → Approval Matrix Builder
Treasury → Marketplace → Sweep / Swap / Stake / Allocate / Route
Treasury → Marketplace → Sweep / Swap / Stake / Allocate / Route
Treasury → Reports → Filter by Entity / Date / Chain → Export or Stream
Treasury → Reports → Filter by Entity / Date / Chain → Export or Stream

Ready to see DFNS in action?

Create an account in minutes, or talk to us to design a deployment tailored to your institution.

Documentation

APIs, SDKs, and guides for builders.

Pricing

Per-transaction pricing, no hidden fees.

Contact us