Open best-execution layer for Canton

Best execution, native to Canton.

The open, neutral layer that routes every trade across Canton's liquidity for the best price, then settles it in one atomic, private transaction.

The problem

Every venue prices it differently.

Canton's liquidity is spreading across AMMs, order books, and RFQ desks. Each one quotes the same pair at a different price, and there is no neutral layer comparing them. So every trade risks the wrong venue, and every team rebuilds the same routing logic. Synfin is that layer.

One standard for tokens. No standard for getting the best price. That is the layer Synfin builds.

How it works

One call. The whole market.

Tell Synfin what you want to trade. It quotes every venue, splits your order for the best price, and settles the whole thing in one transaction.

  1. Quote
    pull live prices from every venue
  2. Compare
    find the best execution across all of them
  3. Split
    route the order to the venues that fill it best
  4. Route & settle
    execute the split as one atomic, private transaction

Proof

Every claim has a check.

Best execution CC → USDCx
You route
250,000 CC
blended 0.14985
Best route, split across 5 venues RFQ + AMM
  • OneSwap 33% 12,380 USDCx
  • CantonSwap 27% 10,118 USDCx
  • Cantex 20% 7,488 USDCx
  • CompassSwap 13% 4,861 USDCx
  • RFQ desk 7% 2,616 USDCx
+11.3 bps
OneSwap, the best quote, over the next venue you receive 37,462 USDCx
Settles atomically. Every leg in one transaction, each venue sees only its own.

Illustrative example. Not live or measured data.

+11.3 bps

OneSwap, the best quote, over the next venue

0 bps best route · +11.3 bps 40 bps

Per-leg privacy

each venue sees only its own leg

executor sees the whole route
  • CantonSwap its leg only
  • OneSwap its leg only
  • RFQ desk its leg only

Per-leg privacy is not anonymity to your own counterparty.

Atomic, on-ledger settlement

every leg in one transaction, proven on Canton

Built on Canton's token standard

CIP-0056 / 0112

We adopt it, and contribute to it.

Venue split

  • OneSwap 33%
  • CantonSwap 27%
  • Cantex 20%
  • CompassSwap 13%
  • RFQ desk 7%

Privacy

Each venue sees only its own leg.

Synfin settles the split so every venue verifies and executes only its own leg. The executor coordinates the whole atomic transaction, and no venue sees the others.

With no public mempool, there is nothing to front-run.

Per-leg privacy is not anonymity to your own counterparty. A venue does not see other venues’ legs, but it does see its own.

Executor: Synfin coordinator submits one atomic transactionsees the whole route
250,000 CC → 37,462 USDCx
  • OneSwap this venue sealed from OneSwap
    sees only its own leg
  • CantonSwap this venue sealed from OneSwap
    sees only its own leg
  • Cantex this venue sealed from OneSwap
    sees only its own leg
  • CompassSwap this venue sealed from OneSwap
    sees only its own leg
  • RFQ desk this venue sealed from OneSwap
    sees only its own leg

Illustrative example. Not live or measured data.

Settlement

Two settlement modes. One adapter interface.

settlementMode atomic

Atomic allocation

The venue co-settles through the token standard’s allocation flow. Eligible for Synfin’s atomic, per-leg-private settlement.

  • Atomic co-settlement: all legs in one transaction.
  • Per-leg privacy: each venue sees only its leg.
  • All or nothing: settles via CIP-0056 / 0112.

settlementMode: 'atomic-allocation'

settlementMode deferred

Managed deposit

Quote-and-deposit venues. Synfin still aggregates their quotes, but execution is deferred and settles separately.

  • Quote and deposit: included in routing.
  • Deferred execution: not same-transaction.
  • Non-atomic: outside the all-or-nothing guarantee.

settlementMode: 'managed-deposit'

  1. today Most venues managed-deposit
  2. adopting Atomic allocation, live and widening
  3. rolling out CIP-0112, Token Standard V2

Atomic settlement is live on Canton today and is valid only when every leg is Mode A, which the router enforces. Most accessible venues are still managed-deposit, so the atomic path widens as venues adopt the allocation flow. CIP-0112 (Token Standard V2) brings further privacy, performance, and settlement improvements, rolling out across the network. Quote aggregation works across both modes now.

Open & neutral

An aggregation layer, not a new standard.

The winning answer to fragmented liquidity is always an aggregation layer on top of the settlement rail: 1inch on EVM, Jupiter on Solana. Neither is a token standard. Both are neutral routers that became default infrastructure. Synfin is that layer for Canton. It adopts CIP-0056 / 0112 for settlement and contributes to it as an early implementer.

  • Open · Apache-2.0
  • Neutral: no venue of our own
  • Self-hostable
  • Adopts and contributes to CIP-0056 / 0112

Synfin holds no liquidity and favors no venue. It is neutral infrastructure on top of the token standard.

  • OneSwap
  • CantonSwap
  • Cantex
  • CompassSwap
  • RFQ desk
Synfin aggregation layer

aggregates quotes · routes to best price · settles the split atomically

Canton Network settlement rail

token standard · CIP-0056 / 0112

Who it's for

Built for everyone routing on Canton.

one adapter

Venues

Implement one adapter and become reachable through every Synfin integration. More flow, no new counterparties to chase.

one adapter, every integration

one SDK

Wallets & apps

One SDK for best-execution swaps across all of Canton’s liquidity. Drop it in and route every trade to the best price.

one SDK, all of Canton

provable best-ex

Institutions

Best execution with settlement atomicity and per-leg confidentiality, provable to the basis point, on neutral open infrastructure.

provable best-ex, per-leg private

Canton is where regulated, institutional liquidity is moving on-chain, on a common token standard. Synfin is the neutral best-execution layer on top of it.

Build

From quote to settled, in a few lines.

One SDK call routes across every venue, splits for the best price, and settles the whole thing atomically, with per-leg privacy. No routing logic to rebuild.

  • One call : quote, route, settle.
  • Best price across all of Canton’s liquidity.
  • Atomic and per-leg-private settlement.
route.ts
import { route } from '@synfin/router-ref';
import { isAtomicRoute } from '@synfin/spec';
import type { AssetId, Quote, SwapIntent } from '@synfin/spec';

// Sell 250,000 CC for USDCx. minReceive is enforced on-ledger,
// so a bad quote aborts the trade and never loses funds.
const intent: SwapIntent = {
  intentId: 'demo-1',
  taker: 'alice::canton',
  give: { asset: CC, amount: '250000' },
  want: { asset: USDCx, minReceive: '37000' },
  maxSlippageBps: 30,
  deadline: '2026-01-01T00:00:00Z',
};

// `quotes`: one Quote per venue, gathered through the VenueAdapter
// port (adapter.quote(req), each request is a single size bucket,
// so no venue ever sees the whole intent). Then route.
const result = route(intent, quotes, new Date());
if (!result.ok) throw new Error(result.reason);

const { plan } = result;
plan.legs;             // OneSwap 33%, CantonSwap 27%, Cantex 20%
plan.aggregateReceive; // '37462', +11.3 bps best quote
isAtomicRoute(plan, quotes); // → true · atomic settlement via CIP-0056 / 0112

Illustrative example output.

Routing and atomicity shown. On-ledger settlement via the token standard (CIP-0056 / 0112).

Build best execution into Canton. Start with the spec.

Open, neutral, and built on the token standard. Read the specification, or pull the SDK and route your first trade.