Tutorial — DeFi
Settle DvP on Canton
The Canton MCP server exposes
canton_dvp_settle for DAML delivery-versus-payment between parties — useful for tokenized RWAs that need legal-grade settlement guarantees.- Level
- Advanced
- Time
- ~25 min
- Prerequisites
- Allocated Canton parties, CIP-56 holdings
- Stack
- TypeScript · MCP
01
Connect to the Canton MCP
Open the Streamable HTTP transport to the Canton service.
import { McpClient } from "tenzro-sdk";
const c = new McpClient("https://canton-mcp.tenzro.network/mcp");02
Allocate the parties
DvP requires two parties — the asset seller and the cash buyer.
await c.call("canton_allocate_party", { hint: "seller-alice" });
await c.call("canton_allocate_party", { hint: "buyer-bob" });03
Run the DvP
The two-step exchange creates a proposal, then accepts atomically.
await c.call("canton_dvp_settle", {
asset: "0xBOND-CONTRACT",
cash: "TNZO",
seller: "seller-alice",
buyer: "buyer-bob",
price: "1000",
});04
Audit the settled transaction
Pull the resulting transaction so you can reconcile against the on-network settlement log.
await c.call("canton_get_transaction", { txId: "..." });Related