Tenzro
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
← All tutorials