Private x402 payments · local reference implementationRead the current scope ↓
Agent Payment Intelligence Firewall

AI agents pay APIs.
The payment is public.
The link is not.

SubEtha keeps the HTTP 402 flow and changes the settlement boundary: a fresh burn address in the challenge, a proof-gated mint behind it, and no payer → provider transfer written on-chain.

Built on the official zERC20 toolchain. The current repository is a local, non-production reference implementation — unaudited, with production profile acceptance intentionally gated.

One payment / two surfacesPUBLIC LEDGER
BURNpayer → 0xd2d2…7ed9
fresh one-time address
−1234
MINT→ treasury
proof-gated settlement
+1234
The chain sees both ends. The direct correspondence between them stays out of the public record. Timing and amount correlations remain possible.
01 / The problem

A payment log is a strategy log.

Machine payments make the leak worse. Every request can reveal what an agent depends on — while a fixed provider address exposes revenue, usage, and customer concentration.

Payer side

What the agent is doing can be inferred.

API choice, timing, order, and spend become a public trace of workflows, research themes, external dependencies, and cost structure.

Provider side

The provider's revenue is public.

A standard payTo address lets observers chart inflows and estimate growth, usage trends, and dependence on key customers.

02 / The protocol

Same 402 flow.
Different settlement boundary.

SubEtha is not a mixer and does not hide the fact that tokens were spent or minted. It changes what the public chain can connect.

01 · REQUEST

Call the API

The agent requests a paid resource without a human checkout or API key.

02 · CHALLENGE

402 + burn address

The provider returns price and a fresh payTo; the treasury is never handed to the payer.

03 · AUTHORIZE

Sign or transfer

Permit mode lets the payer sign while the facilitator relays the burn. A self-transfer fallback remains available.

04 · ACCEPTED

Serve the resource

Once the burn confirms, the payment is accepted and the API result can be served.

05 · FINALIZED

Mint later

A proof-gated mint reaches the treasury without revealing which burn it redeems.

The boundary

Publicly private.
Institutionally auditable — by design.

  • Public observers see a burn and a mint, not a direct payer → provider transfer.
  • The provider and payer retain their own records for reconciliation today.
  • Standardized customer-held view keys and time-bound auditor disclosure are roadmap work, not shipped controls.
Provider-side derivation

burnAddress = truncate160(
Poseidon("burn", recipientFr, secret)
)
recipientFr = SHA256(chainId ‖ recipient ‖ tweak)

secret never appears on-chain.
03 / The operational layer

Privacy is not enough. Operators need a record they can use.

The current implementation adds a participant-scoped payment history package: payer, provider, and facilitator views are separated, lifecycle state is explicit, and access is bound to verified server-side identity rather than caller-supplied headers.

Read the history model ↗
PAYMENT RECORDVERIFIED VIEW
acceptedevidence received
finalizedmint proof verified
participantrole-scoped
reorgstale / revoked

Unknown remains unknown until reconciliation. Records are not silently deleted. Public and payer views redact mint, treasury, linkage, and secret material.

04 / Current scope

From working flow to an operated payment layer.

The codebase is moving from a demo-shaped flow toward the responsibility of running it: durable state, identity boundaries, fees, profiles, and recovery.

Implemented

Facilitator daemon + provider/client SDKs

Config-driven HTTP facilitator with challenge, verify, settle, supported, admin, health, finalize loop, fee handling, and operational checks. SDK packages keep provider integration thin.

repository today
Implemented

Durable payment history

Participant bindings, role-scoped projections, signed identity resolution, bounded exports, encrypted backup checks, proof verification, and explicit reorg lifecycle states are in the current develop line.

repository today
Enabled / gated

Local and Sepolia profiles

Local operation is enabled. Testnet requires explicit Sepolia configuration and admin authentication. Production starts fail-closed until confirmation and finality policy is implemented and reviewed.

profile boundary
Roadmap

Managed private payment layer

Design partners, provider network, spend policy, customer-controlled view keys, sanctions screening, auditor exports, SLA, and commercial operation are not claims of the current PoC.

next discovery
05 / Who it is for

Protect the work behind the payment.

Start with the people whose payment history carries competitive information — on both sides of the market.

Financial research

Agents that buy data

Keep investment themes and research dependencies from becoming a public sequence of API calls.

API providers

Protect customer composition

Reduce payer-level visibility into inflows without pretending that the treasury or total activity is invisible.

Agent builders

Pay without owning settlement

Use x402-compatible interfaces while the private settlement and operational state remain behind a facilitator.

Trading & procurement

Keep timing from becoming strategy

Machine payment cadence can reveal what a bot watches, buys, or negotiates.

Infrastructure teams

Make the boundary reviewable

Accepted, finalized, proof, identity, and recovery are separate surfaces instead of one vague “private” claim.

Your agent. Your API.

Run the reference flow.

Tell us where the protocol, developer experience, or claim boundary breaks.

06 / See it run

A guided payment, end to end.

The web demo shows the client/provider split and the separation between accepted resource delivery and finalized treasury settlement.

Run the local demo ↗
SubEtha guided web demo
07 / FAQ

The short answers.

Is this anonymous payment or a mixer?+

No. The burn and mint remain visible. The design removes the direct correspondence from standard public records; it does not remove operational knowledge, timing correlations, or the need for future disclosure controls.

What is the difference between accepted and finalized?+

Accepted means the burn evidence has confirmed and the provider can serve the resource. Finalized means the later proof-gated mint has been verified. They are deliberately separate lifecycle states.

Who can read payment history?+

The current history model is participant-scoped. A verified payer or provider identity can read its own projection when bound to the payment. Caller-supplied tenant or role headers are not authorization evidence.

Is production operation available?+

No. This is a local, non-production reference implementation. The testnet profile has explicit gates; the production profile remains fail-closed until confirmation/finality policy and operational review are complete.

Does SubEtha issue or fork zERC20?+

No. SubEtha connects an x402-style HTTP payment flow to settlement through the official zERC20 toolchain. It does not issue a new token or redistribute the official SDK source.

08 / Contact

Run the PoC.
Bring back the hard questions.

We are looking for agent builders, paid API providers, protocol engineers, and teams who can test whether payment-history leakage is a real problem in their workflow.

Agent Payment Intelligence Firewall

APIの支払いは公開のまま。
支払者と提供者のリンクは、見えない。

SubEthaはHTTP 402のフローを保ち、決済の境界を変えます。チャレンジには新しいburnアドレスを載せ、その後ろで証明ゲート付きmintを行い、payer → providerの送金をオンチェーンに書きません。

公式zERC20ツールチェーン上のローカル・非本番リファレンス実装。未監査で、production profileの受け入れは意図的にfail-closedです。

1 payment / 2 surfacesPUBLIC LEDGER
BURNpayer → 0xd2d2…7ed9
支払いごとのワンタイムアドレス
−1234
MINT→ treasury
証明ゲート付き精算
+1234
チェーンには両端が見えます。直接の対応関係は公開記録に残りません。タイミングや金額の相関は残ります。
01 / 課題

支払いログは、戦略ログになる。

機械決済では漏洩が増幅します。エージェントの依存先が推測され、固定のproviderアドレスから売上・利用・顧客構成が見えてしまいます。

Payer側

エージェントの行動が推測される。

APIの選択、タイミング、順序、支出が、ワークフロー・調査テーマ・外部依存・コスト構造の公開トレースになります。

Provider側

Providerの売上が公開される。

通常の payTo アドレスを監視すれば、入金・成長・利用トレンド・大口顧客への依存を推定できます。

02 / 仕組み

402フローは同じ。
決済の境界が違う。

ミキサーでも、支払いの事実を隠す仕組みでもありません。公開台帳が接続できる範囲を変えます。

01 · REQUEST

APIを呼ぶ

エージェントが有料リソースをリクエストします。

02 · CHALLENGE

402 + burn

Providerは価格と新しいpayToを返し、treasuryは見せません。

03 · AUTHORIZE

署名または送信

permitモードではpayerが署名し、facilitatorがburnを中継します。

04 · ACCEPTED

リソース提供

burnの確定後、決済をacceptedとして結果を返します。

05 · FINALIZED

後段でmint

どのburnを償還したかを明かさず、treasuryにmintします。

境界線

公開台帳では秘匿。
当事者には監査可能に。

  • 公開観測者にはburnとmintが見えますが、直接のpayer → provider送金は見えません。
  • Providerとpayerはそれぞれ自分の記録を持ち、今日から突き合わせられます。
  • 標準化されたview keyと期限付き監査開示はロードマップであり、未提供です。
Provider側の導出

burnAddress = truncate160(
Poseidon("burn", recipientFr, secret)
)
recipientFr = SHA256(chainId ‖ recipient ‖ tweak)

secretはオンチェーンに現れない。
03 / 運用レイヤー

秘匿性だけでは足りない。運用には使える記録が必要。

現行実装にはparticipant-scopedなPayment Historyがあります。payer・provider・facilitatorのビューを分離し、ライフサイクルを明示し、呼び出し側のヘッダーではなくサーバー側で検証したidentityに認可を結びつけます。

履歴モデルを読む ↗
PAYMENT RECORDVERIFIED VIEW
accepted証拠を受領
finalizedmint証明を検証
participantrole-scoped
reorgstale / revoked

明示的なreconciliationまではunknownのまま。記録を黙って削除しません。

04 / 現在地

動くフローから、運用される決済レイヤーへ。

コードベースは、デモだけでなく、永続状態・認証境界・手数料・プロファイル・復旧という運用責任へ進んでいます。

Implemented

Facilitator daemon + SDK

設定駆動のHTTP facilitator、challenge / verify / settle、finalize loop、手数料、health、運用チェックを含みます。

現在のrepository
Implemented

Durable Payment History

参加者バインディング、role-scoped projection、署名付きidentity、bounded export、proof、reorg lifecycleを現行develop系に実装しています。

現在のrepository
Enabled / gated

Local / Sepolia profiles

localは有効。testnetは明示的なSepolia設定とadmin認証が必要。productionは確認・finality policyが固まるまでfail-closedです。

境界
Roadmap

Managed private payment layer

デザインパートナー、Provider network、支出ポリシー、view key、制裁スクリーニング、監査export、SLA、商用運用は現行PoCの主張ではありません。

次の検証
05 / FAQ

短い回答。

匿名決済やミキサーですか?+

いいえ。burnとmintは見えます。通常の公開記録から直接の対応関係を外しますが、運用者の知識、タイミング相関、将来の開示コントロールまで消すものではありません。

acceptedとfinalizedの違いは?+

acceptedはburnの証拠が確定し、Providerがリソースを返せる状態。finalizedは後段の証明付きmintを検証した状態です。

本番運用できますか?+

いいえ。現在はローカル・非本番のリファレンス実装です。testnetにも明示的なゲートがあり、productionはfail-closedです。

06 / Contact

PoCを動かして、
難しい質問を持ち帰ってください。

Agent開発者、有料API Provider、プロトコルエンジニア、そして支払い履歴の漏洩が本当に問題になるチームを探しています。