Skip to content
Payvol

Payvol Request

Ask. Sign. Settled.

Create a request once. Get paid from any wallet. Settled in seconds, on-chain, and it matches itself.

Istanbul Dubai

Payment request devnet

Amount
125.00
Asset
Amulet
Reference
INV-2026-0042
canton: URI canton:payvol-demo-rec...label=Payvol
canton:payvol-demo-recipient?instrument=DSO%3A%3A1220be58c29e65de40bf273be1dc2b266d43a9a002ea5b18955aeef7aac881bb471a%2FAmulet&amount=125.00&reason=Payvol%20demo%20invoice%20INV-2026-0042&reference=INV-2026-0042&label=Payvol
Settled Encoded live by @payvol/core

The rail

What it runs on.

Four properties of the network underneath, each shown with the evidence we captured.

01

Built on the Canton Token Standard

Transfers run through the instrument registry’s own entry points, under CIP-0056.

02

Settles in seconds

Not a target. This is our own measured run, read from the committed fixtures.

requested 13:03:13.66Z recorded 13:03:19.32Z

03

Any CIP-0056 asset

One structured instrument field carries any instrument on the network.

04

Private by architecture

No relay to trust and no public index to scan. The payee reconciles on its own ledger.

Every value on this row is read at build time from the committed fixtures. Nothing here is typed by hand. packages/payvol-conformance/fixtures/

What it makes possible

Money moves like the world does.

One portable request, fulfilled by any conforming wallet, settled on Canton. These are shapes the standard makes possible.

Corridors

Tokyopayee requests 12,400.00
New Yorkpayer signs 12,400.00
Londonpayee requests 1,245.40
Dubaipayer signs 86,000.00

Settled in

5.7seconds

Cross-border trade

An exporter in Tokyo is paid from New York

One request travels with the shipping documents and settles before the container leaves the port.

Create a request

Payee

DS A design studiopayvol-demo-recipient

Amount

1,245.40 Canton Coin

Reference

INV-2026-0045

Expires

30 days

Create request

Share as

QR · link · NFC

Recurring invoicing

A link inside the email it already sends

No portal to log into and no account to open. The invoice carries its own payment.

SettlementBoth legs clear together TRD-88214

TS Tokenized security1,000 units · registrar party delivered
Payvol requestINV-2026-0046 paid

Atomic settlement

Canton Coin 1,240,000.00
USDCx also accepted

Delivery versus payment

Securities settle against payment

The cash leg is a Payvol request. Both legs clear in one transaction, or nothing moves.

Mandateresearch-runner active

210.00of 500.00 this month


API Usage invoiceAPI-2026-3391 42.00
API Usage invoiceAPI-2026-3364 38.50
Signed inside the limit

Autonomous agents

An agent pays an API invoice on its own

Inside the mandate its owner set. Outside it, the request waits for a person.

A cafe · Table 4

Scan to pay


2 flat white9.60

Paid from

Any conforming wallet

Terminal

None needed

In person

A cafe prints one QR code

No terminal, no merchant account, no integration. Any conforming wallet can pay it.

Payvol

one artifact

QR on an invoice
A link in an email
An NFC tap
An agent call

Needed

No session, no relay

Same artifact

Every one of these is the same request

Nothing above needs a bespoke integration, a session, or a relay.

How it works

Five beats, start to reconciled.

Five steps, one artifact. No session to keep alive, no relay in the middle, no account to open on either side.

  1. 01

    The payee creates a request

    Amount, instrument, reference and expiry, written once into a canonical object with a stable hash.

    Canonical objectone hash

    "payee": "payvol-demo-recipient",
    "amount": "1245.40",
    "instrument": { "admin": "DSO::1220…", "id": "Amulet" },
    "reference": "INV-2026-0045",
    "expiry": "2026-09-20T00:00:00Z"
    SHA-256 e19e…029a deterministic

    rendered from the object

    Same object

    Encodes to a QR, a link and an NFC record


    no serverno session

    canton:payvol-demo-recipient?instrument=DSO%3A%3A1220be58c29e65de40bf273be1dc2b266d43a9a002ea5b18955aeef7aac881bb471a%2FAmulet&amount=1245.40&reason=Payvol%20demo%20invoice%20INV-2026-0045&reference=INV-2026-0045&expiry=2026-09-20T00%3A00%3A00Z&label=Payvol

  2. 02

    It travels as a QR, a link or a tap

    The artifact carries everything a wallet needs, so it can be printed, emailed or handed over offline.

    On an invoice
    INV-2026-0045
    1,245.40
    AP Invoice for Marchaccounts payable
    Pay this invoice
    Or a tap at the counterthe same bytes, over NFC no relay
    Carries

    Everything a wallet needs, nothing it must fetch

    Works offline

    Print it, hand it over, pay it later

  3. 03

    The payer signs what they can read

    The wallet prepares the transaction and shows the exact fields being authorised. Nothing is hidden behind an opaque payload.

    Prepared transactionReview before signing clear signing

    Canton CoinDSO::1220be58… / Amulet 1,245.40
    Referencecarried into the transfer INV-2026-0045
    Reasonthe standard metadata key splice.lfdecentralizedtrust.org/reason
    Prepared transaction hash

    gpLaLGoZCdmyStwfn9xwfdgOuLbm8mTgCmkjyIJWI+M=
    HASHING_SCHEME_VERSION_V2

    Signed by
    PK payer keyed25519, held locally

    Signature attached
  4. 04

    Canton settles it in one transaction

    The transfer runs through the instrument registry under CIP-0056, atomically, and is disclosed to the payer, the payee and that registry rather than to the network.

    Recorded on ledgerOne transaction, both parties atomic

    now
    Update id

    122097838979b331f7…162d

    Visible to

    payer, payee

    Canton Cointransferred, not wrapped
    TRANSFER · CIP-0056registry

    TransferFactory_Transfer
    splice.lfdecentralizedtrust.org/reason

  5. 05

    The invoice matches itself

    The reference travels with the payment, so the payee matches it on its own ledger without a reconciliation run.

    Receivables matched by reference

    INV-2026-0043a design studio 96.00 matched
    INV-2026-0044a freight forwarder 12,400.00 matched
    INV-2026-0045a design studio 1,245.40 closing now
    INV-2026-0046a logistics operator 310.75 open
    Payee ledger

    Read on the payee own ledger, no public index scanned

    No reconciliation run

    The reference arrives with the payment


    Closed on its own ledger

On the surface, under the hood

One object, three surfaces.

The payer scans a code. What they scanned is a link. What the link carries is a canonical object with a stable hash. Same bytes, three ways to hand them over.

What the payer sees

A code on an invoice Printed with the document it belongs to
A link in an email No portal, no account to open first
A tap at the counter The same bytes, carried over NFC

Under all three

  • Token Standard transfer
  • Prepared transaction
  • External signature
  • Private reconciliation
CANONICAL JSON what the spec defines
"amount" : "1245.40" , "instrument" : "DSO::1220…/Amulet" , "recipient" : "payvol-demo-recipient" , "reference" : "INV-2026-0045" , "type" : "transfer" , "version" : "0.1"
CANTON URI what a link carries

canton:payvol-demo-recipient?instrument=DSO%3A%3A1220be58c29…471a%2FAmulet&amount=1245.40&reference=INV-2026-0045

QR what a wallet scans
1,245.40 INV-2026-0045
encoded from rendered into scanned as

One object, one hash

sha256 c7f2…c6a3

Change any field and the hash changes. Nothing is negotiated in transit.

The same request is shown three ways: the canonical JSON the specification defines, the canton: URI a link carries, and the QR a Canton Coin wallet scans. All three carry one object with the digest c7f2…c6a3.

Built for institutions

The rails they already speak, extended on-chain.

Request to pay is how corporate payment already works. Payvol carries the same primitive to a ledger where the cash leg can settle atomically against an asset.

Off-chain Bank rails messages move, money follows later
ISO 20022 Creditor issues pain.013 carried on RTP and FedNow
Bank rail Debtor approves credit transfer follows
Securities leg Settles separately in its own system
Back office Reconciliation run statements matched to invoices
Where one world ends And the other begins
Mapping pain.013 fields map to a Payvol request defined in the spec
On-chain Canton, one ledger the request and the settlement meet in one transaction
Request Payee issues one artifact QR, link or NFC
Sign Payer signs what they read external signature, any conforming wallet
Settle Both legs, one transaction atomic delivery versus payment
Reconcile The invoice matches itself the reference travels with the payment
the bank message is unchangedno portal for the payerno separate cash rail the mapping is what makes both rows the same payment
Delivery versus payment atomic

The cash leg of a tokenized trade

Asset and payment clear in one transaction, or neither moves.

Asset leg Cash leg
Multi-asset CIP-0056

One field, any instrument

Tokenized cash, funds or securities, carried in the same request.

Canton Coin USDCx
Privacy by architecture

Settlement detail stays with its parties

Counterparties and the instrument registry see the transfer. The rest of the network does not.

2 of the network

Where an institutional request primitive leads

Intercompany netting across subsidiaries, corporate actions and fund subscriptions as batched requests, compliance data carried alongside the request rather than reconciled afterwards, and approval policy expressed on the request itself. Directions the standard is designed to reach, not deployments.

For developers

Five lines to a payable request.

Encode an object, render it however you like. The spec, the vectors and the settlement evidence are open.

encode.ts TypeScript
// npm i @payvol/core @payvol/qr
import { encode } from '@payvol/core';

const uri = encode({
  version:    '0.1',
  type:       'transfer',
  recipient:  'payvol-demo-recipient',
  instrument: 'DSO::1220be58…471a/Amulet',
  amount:     '1245.40',
  reference:  'INV-2026-0045',
});

Returns

canton:payvol-demo-recipient?instrument=DSO%3A%3A1220be58c29…471a%2FAmulet&amount=1245.40&reference=INV-2026-0045

Read the specification v0.1, sealed · CIP in preparation At launch
Conformance vectors 42 cases an implementation must pass At launch
Open source Apache-2.0 code, CC0 specification At launch

Wherever the payer is

One request. Any wallet. Any instrument.

The payer can be anywhere and hold anything the network supports. What settles is always a Canton instrument.

Payment request Verified

Amount due

1,245.40

reference INV-2026-0045 · expires 2026-09-20

Instrument Details Raw

Held by this wallet

Canton Coin DSO::1220be58…471a / Amulet
USDCx decentralized-usdc…60ef

Also carried by the same request

Tokenized fund units any CIP-0056 registrar

Request details

payvol-demo-recipient payee

Settles

in seconds

Visible to

payer, payee

Sign and pay

Signed locally · settles on Canton

No account · no portal · no relay