polyc-payments 2026.9.0

Machine Payments Protocol (MPP/Tempo) integration for polychrome: the control-plane composition/glue layer over the standalone outbound, inbound, wallet-delegation, egress, and spend-policy primitive crates, plus the payment proxy/wallet views.
docs.rs failed to build polyc-payments-2026.9.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

Machine Payments Protocol (MPP / Tempo) integration for polychrome.

This is the polychrome-specific composition layer: the control-plane payment proxy chokepoint, the wallet self-service view renderers, and the env-driven [config] that assembles the standalone polyc-* payment primitive crates into the shape polychrome's control plane needs (see issue #717's crate map). It stays publish = false — a third party building their own agent depends on the primitive crates directly instead:

  • Outbound 402-gated payment client (TempoProvider-backed, pays a PAYMENT-REQUIRED challenge via the MPP PaymentMiddleware/PaymentExt path, plus the per-call spend-cap wrapper, chain-id pinning guard, settlement-token balance reads, and verified explorer-link resolution) now lives in the standalone polyc-payments-client crate; PaymentsConfig composes its OutboundConfig from its own broader configuration and delegates to it (PaymentsConfig::resolve_client, PaymentsConfig::resolve_outbound_client).
  • Inbound: 402 challenge issuance and credential verification lives in the standalone polyc-payments-server crate. This deployment mounts no inbound gate, so this crate composes nothing for it. A consumer that wants the inbound server depends on polyc-payments-server directly.

The control-plane payment proxy ([proxy]) gates every paid fetch (approval binding, SSRF, spend cap, budget) and renders the caller-facing wallet self-service views ([view]); polyc_wallet_delegation::provision mints and provisions a delegated key when a caller links a wallet. Configuration for all of this is loaded from the environment via [config].

The full non-custodial Tempo wallet-delegation lifecycle — keys.toml parsing, TIP-1053 witness binding, scoped-key provisioning, and secret custody — lives in the standalone polyc-wallet-delegation crate; this crate composes it into polychrome's own control-plane proxy and wallet self-service views.

The default network is Tempo's Moderato testnet ([MODERATO_RPC_URL], chain id [MODERATO_CHAIN_ID]).