Delivery-versus-payment (DvP) means the asset is delivered only if payment is made, and payment is made only if the asset is delivered. On a blockchain this can be atomic — both legs in one transaction — removing settlement risk and cutting settlement from days to seconds. When the cash leg lives off-chain, DvP is achieved with escrow contracts that release tokens once a custodian or bank confirms payment.
Key takeaways
- Atomic DvP requires both the asset token and the cash token on the same ledger (or linked by an interoperability protocol).
- Escrow DvP handles off-chain cash: tokens lock in escrow; release on payment confirmation.
- Cash-leg options: stablecoins, tokenized deposits, wholesale CBDC pilots, or fiat with confirmation.
- DvP needs eligibility checks on both parties, timeouts and clear failure handling.
Atomic DvP on one ledger
- Seller approves the settlement contract to move asset tokens (or signs a permit).
- Buyer approves the contract to move cash tokens.
- The contract checks eligibility (e.g. buyer verified in an ERC-3643 registry), price and quantity.
- In a single transaction it transfers asset to buyer and cash to seller — or reverts entirely.
Escrow DvP with off-chain cash
Used in our education loan platform:
- Investor wins a bid for a loan pool.
- The smart contract validates the trade and locks tokens in escrow.
- The investor pays fiat; the custodian confirms payment to the platform.
- Tokens move to the investor’s wallet. If payment does not arrive before the deadline, tokens return to the seller.
Cash-leg options
| Cash leg | Pros | Cons |
|---|---|---|
| Stablecoins | Available on public chains, 24/7 | Issuer and depeg risk; regulatory limits for some investors |
| Tokenized deposits | Bank money, regulated | Usually permissioned networks; limited interoperability |
| Wholesale CBDC (pilots) | Central-bank money | Limited availability |
| Fiat + confirmation | Works everywhere today | Not atomic; relies on confirmation process |
Cross-chain DvP
When asset and cash live on different ledgers, options include hash time-locked contracts, interoperability protocols and messaging layers, or trusted settlement agents. Each introduces latency and trust assumptions to evaluate carefully.
Design checklist
- Eligibility checks for both sides at settlement time.
- Price, quantity and fee validation.
- Timeouts and automatic unwinds.
- Partial fills and pro-rata allocation rules.
- Events for reconciliation with custodians and registers.
- Audit of escrow logic and re-entrancy protection.
Example: atomic DvP contract (simplified)
// Illustrative atomic swap of security tokens for stablecoins — not audited.
function settle(Trade calldata t, bytes calldata sellerSig, bytes calldata buyerSig) external nonReentrant {
require(block.timestamp <= t.deadline, "expired");
require(_verify(t.seller, _hash(t), sellerSig) && _verify(t.buyer, _hash(t), buyerSig), "bad signatures");
require(!settled[_hash(t)], "already settled");
settled[_hash(t)] = true; // effects first
require(security.canTransfer(t.seller, t.buyer, t.qty), "not eligible");
cash.transferFrom(t.buyer, t.seller, t.price * t.qty); // cash leg
security.transferFrom(t.seller, t.buyer, t.qty); // asset leg
emit Settled(_hash(t), t.seller, t.buyer, t.qty, t.price);
}
If any step fails — eligibility, insufficient cash, signature — the whole transaction reverts and neither leg moves.
Settlement states for escrow-based DvP
| State | Meaning | Next |
|---|---|---|
| Matched | Trade agreed | Lock asset in escrow |
| Asset locked | Seller’s tokens in escrow | Await payment confirmation |
| Payment confirmed | Custodian/bank confirms cash | Release tokens to buyer |
| Settled | Both legs complete | Reporting |
| Expired / failed | Deadline passed or rejection | Return tokens to seller |
Measuring settlement performance
- Average time from match to settlement.
- Failed or expired trades (and reasons).
- Cash confirmation latency by bank/custodian.
- Reconciliation breaks between ledger and cash records.
Frequently asked questions
It removes settlement risk but requires pre-funding: buyers must hold cash tokens before trading, which can tie up liquidity.
Yes, through escrow released on payment confirmation, though it is not fully atomic.
Settlement on the trade date — or instantly. Tokenized DvP can achieve it where both legs are on-chain.
Settlement systems for securities are often regulated. Many issuers partner with licensed custodians or venues for this role.
Typically no — DvP is all-or-nothing per trade. Partial fills are separate trades.
Escrow deadlines and dispute procedures should cover late confirmations; trades can be re-initiated if they expire.
This article is for general information only and is not legal, tax or investment advice. Token standards evolve — always confirm the current status of an ERC at eips.ethereum.org and take advice from qualified counsel in each jurisdiction before issuing tokens.


