Skip to content

feat(methods): add tenzro charge IETF I-D#253

Open
hilarl wants to merge 1 commit into
tempoxyz:mainfrom
tenzro:add-tenzro-charge-id
Open

feat(methods): add tenzro charge IETF I-D#253
hilarl wants to merge 1 commit into
tempoxyz:mainfrom
tenzro:add-tenzro-charge-id

Conversation

@hilarl

@hilarl hilarl commented May 2, 2026

Copy link
Copy Markdown

Add tenzro payment method (charge intent)

Summary

Adds specs/methods/tenzro/draft-tenzro-charge-00.md registering
the tenzro payment method for HTTP Payment Authentication
(I-D.httpauth-payment). The Tenzro Ledger is a multi-VM L1
(EVM + SVM + Canton/DAML over a single underlying balance via the
Sei-V2 pointer model) — the tenzro method exposes a unified
payment surface that lets a single TNZO transfer settle through any
of the four façades while keeping all signature, replay, and
delegation rules consistent.

Motivation

The existing evm method already handles "any EVM-compatible chain"
via methodDetails.chainId, so a parallel chain-specific EVM-only
method for Tenzro would duplicate it. The tenzro method is
justified by three additions over evm (or any other chain-specific
method currently registered):

  1. Multi-VM façade dispatch. methodDetails.facade ∈ {native, evm, svm, canton} selects which VM façade processes
    the same logical TNZO transfer. The EVM façade alone is
    insufficient because Tenzro's recipients may hold keys in any of
    the four ecosystems and the underlying balance is shared.
  2. TDIP DID binding. Credentials MAY bind a did:tenzro: DID
    that servers MUST resolve before settlement. This permits
    per-credential KYC-tier and delegation-scope enforcement that has
    no counterpart in evm/solana/stellar. Tenzro Ledger is
    built around long-lived agent identities (humans + AI agents),
    so DID binding is a first-class concern.
  3. Mandatory hybrid post-quantum signing. Every credential
    carries an ML-DSA-65 (FIPS 204) signature alongside the
    classical Ed25519 / secp256k1. This is a hard requirement, not
    an option — Tenzro mandates PQ resilience pre-launch.

What's in the draft

  • §1 Introduction — design rationale, façade selection, charge
    flow diagram.
  • §3 Terminology — TNZO, VM Façade, wTNZO/wTNZO-SPL,
    TDIP, DelegationScope, SpendingPolicy, Hybrid PQ Signature.
  • §4 Request Schema — shared fields, asset identifiers (3
    encodings), recipient identifiers (4 forms incl. DIDs),
    methodDetails.facade discriminator with full per-façade
    semantics.
  • §5 Credential Schematype="authorization" (RECOMMENDED,
    EIP-712), type="transaction", type="hash". Hybrid PQ signature
    fields are REQUIRED on all three.
  • §6 Verification — 7-step rule covering signature, public key
    binding, TDIP binding, DelegationScope, SpendingPolicy, and balance.
  • §7 Settlement + §8 Receipts — façade-aware receipt with
    facade field.
  • §9 Error Codes — 9 Tenzro-specific entries extending RFC 9457.
  • §10 Security Considerations — hybrid PQ rationale, replay,
    TDIP rotation, cross-façade replay, server-paid fee risk, façade
    privacy.
  • §11 IANA Considerations — registers tenzro method and binds
    charge intent to it.
  • Appendix A ABNF; Appendix B reference implementation
    pointer; Appendix C worked example.

Reference Implementation

A working Rust implementation lives at
https://github.com/tenzro/tenzro-network/tree/main/crates/tenzro-payments/src/mpp
and a TypeScript client at
https://github.com/tenzro/tenzro-network/tree/main/sdk/tenzro-ts-sdk.
Both implementations cover challenge issuance, credential
verification, hybrid PQ signing, TDIP binding, delegation enforcement,
and settlement on all four façades against a live testnet at
rpc.tenzro.network.

Tests

  • The reference implementation has 75 unit tests (crates/tenzro-payments)
    covering challenge / credential / receipt round-trips for all four
    façades.
  • make check and make lint pass against this PR.
  • Conformance examples in §B and §C decode-and-validate against the
    reference implementation.

AI assistance disclosure

Per the project's AI disclosure norms: parts of this draft were
prepared with AI assistance from Claude Code. All technical decisions,
verification logic, and final wording were reviewed and authored by
the human author (Hilal Agil, hilal@tenzro.com). The reference
implementation was developed independently in
tenzro/tenzro-network over preceding months.

Checklist

  • Filename draft-{network}-{intent}-{NN}.md with
    {network}=tenzro, {intent}=charge, {NN}=00.
  • Located under specs/methods/tenzro/.
  • Frontmatter follows STYLE.md (kramdown-rfc, IETF I-D format).
  • Conventional Commit subject:
    feat(methods): add tenzro charge method.
  • DCO sign-off.
  • No mainnet-only references; all examples use testnet endpoints
    or generic placeholders.

Registers draft-tenzro-charge-00 as the IETF Internet-Draft binding the
Tenzro Ledger to the 'charge' intent in HTTP Payment Authentication
(I-D.payment-intent-charge / I-D.httpauth-payment).

Sibling to tempoxyz#252 (specs/methods/tenzro.md), which is the maintainer-
facing method document. This file is the formal kramdown-rfc I-D for
IANA registration of the 'tenzro' method against the 'charge' intent.

Highlights specific to the I-D form:

- Multi-VM facade dispatch (methodDetails.facade in {native, evm, svm,
  canton}) — single TNZO transfer settled through any of four facades
  via the Sei-V2 pointer model.
- TDIP DID binding with KYC-tier and DelegationScope enforcement.
- Mandatory hybrid Ed25519 + ML-DSA-65 (FIPS 204) signatures on every
  credential type (authorization, transaction, hash).
- IANA Considerations registering 'tenzro' under the HTTP Payment
  Method Registry and binding 'charge' to it.
- ABNF appendix and worked examples decode-and-validate against the
  reference implementation in tenzro/tenzro-network.

Signed-off-by: Hilal Agil <hilal@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant