@aifinpay/deployments 1.1.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,163 +1,59 @@
1
1
  # Splitter Deployment Registry — Index
2
2
 
3
- Versioned storage for B2BSplitter contract deployments across all supported chains and ecosystems.
4
-
5
- ## Structure
6
-
7
- ```
8
- deployments/registry/splitter
9
- ├── INDEX.md # This file
10
- ├── evm/v1.1/ # EVM Legacy — Initial version (immutable 1%/0.01% fee)
11
- │ ├── README.md
12
- │ └── deployments.json
13
- ├── evm/v1.2/ # EVM Legacy — Added paymentId replay guard
14
- │ ├── README.md
15
- │ └── deployments.json
16
- ├── evm/v1.3/ # EVM Route table — Protocol routes (merchant-aifp1 / agent-x402)
17
- │ ├── README.md
18
- │ └── deployments.json
19
- ├── evm/v1.4/ # EVM Full contract suite — 7 contracts per chain
20
- │ ├── README.md
21
- │ └── deployments.json
22
- ├── solana/ # Solana v1.4 — Program deployments (non-EVM)
23
- │ ├── README.md
24
- │ └── deployments.json
25
- └── casper/ # Casper — Placeholder (not yet deployed)
26
- ├── README.md
27
- └── deployments.json
3
+ Versioned deployment records and interface artifacts. Registry values are recorded
4
+ inputs to verification, not evidence of current runtime or backend availability.
5
+
6
+ ## Registry lookup
7
+
8
+ | Registry | Machine-readable records | Guide |
9
+ |----------|--------------------------|-------|
10
+ | EVM v1.1 | [deployments.json](evm/v1.1/deployments.json) | [Legacy interface](evm/v1.1/README.md) |
11
+ | EVM v1.2 | [deployments.json](evm/v1.2/deployments.json) | [Replay guard](evm/v1.2/README.md) |
12
+ | EVM v1.3 | [deployments.json](evm/v1.3/deployments.json) | [Protocol routes](evm/v1.3/README.md) |
13
+ | EVM v1.4 | [deployments.json](evm/v1.4/deployments.json) | [Contract suite](evm/v1.4/README.md) |
14
+ | Solana | [deployments.json](solana/deployments.json) | [Program and IDL](solana/README.md) |
15
+ | Casper | [deployments.json](casper/deployments.json) | [Contract schema](casper/README.md) |
16
+
17
+ Read the selected record for chain/network identity, addresses or program IDs,
18
+ runtime hashes, governance, assets, policy fields and settlement flags. Read
19
+ `source`, `sourceArtifact` and `generatedAt` where present for provenance;
20
+ do not infer provenance from the age of this guide.
21
+
22
+ ## Querying records
23
+
24
+ Use [AifinpayRegistry](../../src/registry.ts) and the
25
+ [usage guide](../../USAGE.md) for lookups and generated exports. A registry query
26
+ does not perform live verification. For v1.3, select the raw record by chain
27
+ **and** `_route`; the chain-keyed registry API cannot distinguish multiple routes
28
+ on the same chain.
29
+
30
+ ## Refreshing and testing
31
+
32
+ The [grabber](../../src/grabber.ts) and [build CLI](../../src/build.ts) define
33
+ upstream selection and generated output locations. From `deployments/`:
34
+
35
+ ```bash
36
+ npm run build
37
+ npm test
38
+ # Explicit maintenance operation: fetches upstream and rewrites registry outputs.
39
+ npm run registry:build
28
40
  ```
29
41
 
30
- ## Quick Lookup by Version
31
-
32
- | Version | Ecosystem | Status | Chains/Networks | Key Feature |
33
- |---------|-----------|--------|-----------------|-------------|
34
- | [v1.1](evm/v1.1/README.md) | EVM | Superseded | Base, Unichain | Initial production release |
35
- | [v1.2](evm/v1.2/README.md) | EVM | Superseded | Polygon, Optimism, BOT Chain, XRPL EVM | `bytes32 paymentId` replay guard |
36
- | [v1.3](evm/v1.3/README.md) | EVM | Active | 10 chains × 2 routes | Protocol routes with immutable fee splits |
37
- | [v1.4](evm/v1.4/README.md) | EVM | Mostly disabled | 10 chains | Full contract suite (7 contracts per chain) |
38
- | [v1.4](./solana/README.md) | Solana | Disabled | Devnet, Mainnet | Program ID + IDL (Anchor-style) |
39
- | [v1/v2](./casper/README.md) | Casper | Testnet live | Testnet (live), Mainnet (historical v1) | Rust → Wasm contract; `register_agent` / `pay_agent` |
40
-
41
- ## Quick Lookup by Chain
42
-
43
- ### EVM Chains
44
-
45
- | Chain | Chain ID | v1.1 | v1.2 | v1.3 Routes | v1.4 Status |
46
- |-------|----------|------|------|-------------|-------------|
47
- | Amoy | 80002 | — | — | `merchant-aifp1`, `agent-x402` (testnet, settlement enabled) | ✅ enabled |
48
- | Arbitrum | 42161 | — | — | `merchant-aifp1`, `agent-x402` | ❌ disabled |
49
- | Avalanche | 43114 | — | — | `merchant-aifp1`, `agent-x402` | ❌ disabled |
50
- | Base | 8453 | ✓ | — | `merchant-aifp1`, `agent-x402` | ⚠️ invalid (redeploy required) |
51
- | BNB | 56 | — | — | `merchant-aifp1`, `agent-x402` | ❌ disabled |
52
- | BOT Chain | 677 | — | ✓ | `merchant-aifp1`, `agent-x402` | — |
53
- | Optimism | 10 | — | ✓ | `merchant-aifp1`, `agent-x402` | ❌ disabled |
54
- | Polygon | 137 | — | ✓ | `merchant-aifp1`, `agent-x402` | ❌ disabled |
55
- | Robinhood | 4663 | — | — | — | ❌ disabled (TokenList empty) |
56
- | Unichain | 130 | ✓ | — | `merchant-aifp1`, `agent-x402` | ❌ disabled |
57
- | XRPL EVM | 1440000 | — | ✓ | `merchant-aifp1`, `agent-x402` | ❌ disabled (no stablecoin) |
58
-
59
- ### Non-EVM Ecosystems
60
-
61
- | Ecosystem | Network | Program ID / Contract Hash | Status |
62
- |-----------|---------|---------------------------|--------|
63
- | [Solana](./solana/README.md) | Devnet | `8dty5bD738Z9TzEkDu8vLSnhpJNWtEGMUEcYaKCUTY6y` | ❌ disabled (no backend verification) |
64
- | Solana | Mainnet | `724Ut31i4ecY4dJ25z8HuZetu3A43xtNkPdk4JdbsfdD` | ❌ disabled (no backend verification + upgrade authority not multisig) |
65
- | [Casper](./casper/README.md) | Testnet | `hash-47df409829ddf0612617460293ba591a19b26fa0c06918878204088d3eb9b78a` | ✅ **live** (v2 verified) |
66
- | Casper | Mainnet | `hash-7ad34a204952eef63d5dcf5159fb7d009e85dea4f49cbdf73dde190652dfa375` | ⚠️ **historical** (v1 — receipt only, no atomic transfer) |
67
-
68
- ## Governance
69
-
70
- All v1.3 deployments are owned by the same governance Safe:
71
-
72
- - **Safe:** `0xFd936f75D9221949f2FEaB54Cd342F7527154eD5`
73
- - **Threshold:** 3 of 5
74
- - **Owners:** 5 multisig signers
75
-
76
- Legacy v1.1/v1.2 deployments have varying owners (see version-specific READMEs).
77
-
78
- ## Sources of Truth
79
-
80
- ### EVM v1.1-v1.3 (Route Table)
81
-
82
- - **Source:** `AiFinPay/evm-contract/registry/generated/splitter-table.json`
83
- - **Local copy:** `deployments/registry/reference/splitter-table.json`
84
- - **Last updated:** 2026-08-30
85
-
86
- ### EVM v1.4 (Full Contract Suite)
87
-
88
- - **Source:** `AiFinPay/evm-contract/deployments/*-v14-*-latest.json`
89
- - **Local copy:** `deployments/registry/evm-splitter-v1.4.json`
90
- - **Last generated:** 2026-09-13
91
- - **Upstream commit:** `a54a4c107de7bb42f54e411e621d3897938bfc31`
92
-
93
- ### Solana v1.4 (Program)
94
-
95
- - **Source:** `AiFinPay/solana-contract/deployments/splitter_v14/`
96
- - **Local copy:** `deployments/registry/solana-splitter-v1.4.json`
97
- - **Last generated:** 2026-09-13
98
- - **Upstream commit:** `e5df8f5436cf646ab495381eee04e0d1a10b4e2f`
99
-
100
- ### Casper
101
-
102
- - **Testnet (v2):** `hash-47df409829ddf0612617460293ba591a19b26fa0c06918878204088d3eb9b78a` — live, verified
103
- - **Mainnet (v1):** `hash-7ad34a204952eef63d5dcf5159fb7d009e85dea4f49cbdf73dde190652dfa375` — historical, receipt-only (not valid settlement proof)
104
- - **Source:** `AiFinPay/casper-contract` — Rust → Wasm contract
105
- - **IDL:** Not applicable (Casper uses Rust contract schema, not Anchor-style IDL)
106
-
107
- **Do not hand-edit** the JSON files in this directory. To update:
108
-
109
- 1. Change `registry/registry.json` in `AiFinPay/evm-contract`
110
- 2. Run `verify-registry.mjs` to verify against chain
111
- 3. Run `npm run registry:sync -- --from <path-to-evm-contract>` in `node/`
112
- 4. Copy updated `node/registry/splitter-table.json` to `deployments/registry/reference/`
113
- 5. Regenerate versioned files with a script (TODO: add generator)
114
-
115
- ## Related Artifacts
116
-
117
- ### EVM
118
-
119
- - `registry/reference/splitter-table.json` — Raw upstream route table (v1.2 + v1.3)
120
- - `registry/reference/splitter-table-source.json` — Provenance metadata
121
- - `registry/evm-splitter-v1.4.json` — v1.4 full contract suite deployments
122
- - `registry/abi/` — EVM ABI bundles and Tron ABI artifacts
123
-
124
- ### Solana
125
-
126
- - `registry/solana-splitter-v1.4.json` — v1.4 program deployments
127
- - `registry/idl/solana/splitter-v14/` — IDL copies (devnet + mainnet)
128
-
129
- ### Casper
130
-
131
- - `registry/idl/casper/` — Casper IDL artifacts (contract schema, not Anchor-style)
132
- - **Upstream:** `AiFinPay/casper-contract` — https://github.com/AiFinPay/casper-contract
133
-
134
- ### Combined
135
-
136
- - `registry/evm-splitter-v1.4.json` — Generated EVM v1.4 deployments (matches `splitter/v1.4/deployments.json` schema)
137
- - `registry/solana-splitter-v1.4.json` — Generated Solana v1.4 deployments (matches `splitter/solana/deployments.json` schema)
138
-
139
- ## Usage
140
-
141
- ### For SDK consumers
142
-
143
- Use the `@aifinpay/agent` SDK's `resolveSplitterRoute(chain, route)` function — it reads from the generated `splitterRoutes.generated.ts` table.
144
-
145
- ### For auditors
146
-
147
- 1. Check `evm/v1.2` for superseded addresses
148
- 2. Verify migration guards in `node/tests/splitterV12.test.ts`
149
- 3. Compare runtime code hashes against on-chain `eth_getCode`
150
-
151
- ### For deployment verification
42
+ These commands build, test or refresh records; none proves live settlement.
43
+ Review upstream provenance and resulting JSON changes before adopting refreshed
44
+ records. The grabber does not regenerate the v1.3 route snapshot; preserve its
45
+ provenance when maintaining it. See the [package rules](../../AGENTS.md).
152
46
 
153
- 1. Check `evm/v1.3` for current addresses
154
- 2. Verify `runtimeCodeHash` matches deployed bytecode
155
- 3. Confirm `owner` and `treasury` match expected governance Safe
156
- 4. Check `validFrom`/`validUntil` policy window
47
+ For downstream SDK generation, see
48
+ [the generator](../../../node/scripts/generate-splitter-routes.mjs).
49
+ Run `npm run registry:check` from `node/` to check generated files against the
50
+ installed deployment package. This is an offline consistency check, not runtime
51
+ or backend verification.
157
52
 
158
- ## Security Notes
53
+ ## Interface artifacts
159
54
 
160
- - **Address collisions:** Same address can appear on different chains/routes with different fee splits. Never select by address alone.
161
- - **Settlement status:** `settlementEnabled: false` means the route is not cleared for mainnet payments.
162
- - **Policy window:** Routes outside their `validFrom`/`validUntil` window must not settle.
163
- - **Testnet opt-in:** Amoy routes require explicit `allowTestnet: true` flag in settlement code.
55
+ - [Payment deployment JSON Schema](../../src/reference/payment-deployments.schema.json)
56
+ - [EVM ABI bundles](../abi/evm/)
57
+ - [Solana IDL copies](../idl/solana/splitter-v14/)
58
+ - [Casper contract schema](../idl/casper/aifinpay-casper-schema.json)
59
+ - [Artifact loading implementation](../../src/artifacts.ts)
@@ -1,101 +1,10 @@
1
- # Casper Splitter v1 — Contract Deployments
1
+ # Casper Splitter — Contract Registry
2
2
 
3
- ## Overview
3
+ ## Deployment lookup
4
4
 
5
- Casper settlement contract (Rust → Wasm) for AI agent payments. Agents self-register on-chain identities, then `pay_agent` atomically records settlement and emits `PaymentSettled` events.
5
+ Casper deployments use a contract hash and contract schema rather than an EVM contract suite. Read [deployments.json](deployments.json) for network, environment, contract hash, schema metadata and settlement flag.
6
6
 
7
- **Status:** Live on Casper testnet. Mainnet v1 is historical (payment recording only, no atomic transfer).
7
+ ## Supports
8
8
 
9
- ## Deployments
10
-
11
- | Network | Contract Package Hash | Status | Notes |
12
- |---------|----------------------|--------|-------|
13
- | Casper Testnet | `hash-47df409829ddf0612617460293ba591a19b26fa0c06918878204088d3eb9b78a` | ✅ **live** | v2 — verified deployment |
14
- | Casper Mainnet | `hash-7ad34a204952eef63d5dcf5159fb7d009e85dea4f49cbdf73dde190652dfa375` | ⚠️ **historical** | v1 — `pay_agent` recorded amount but did NOT transfer; separate transfer required |
15
-
16
- ## Contract Details
17
-
18
- ### Entry Points
19
-
20
- | Entry Point | Args | Description |
21
- |-------------|------|-------------|
22
- | `register_agent` | `agent_id: String, wallet: String` | Self-register caller wallet → `AgentRegistered` event |
23
- | `pay_agent` | `from_agent: String, to_agent: String, amount: U512, request_id: String` | Record settlement → `PaymentSettled` event (v2); v1 recorded only |
24
- | `get_payment_count` | — | Total settled payments |
25
-
26
- ### Events
27
-
28
- - `AgentRegistered` — `agent_id`, `wallet`
29
- - `PaymentSettled` — `from`, `to`, `amount` (motes), `request_id`
30
-
31
- ## Live Testnet Deployment
32
-
33
- **Contract Package Hash:**
34
- ```
35
- hash-47df409829ddf0612617460293ba591a19b26fa0c06918878204088d3eb9b78a
36
- ```
37
-
38
- **Explorer:** [cspr.live testnet](https://testnet.cspr.live/contract/47df409829ddf0612617460293ba591a19b26fa0c06918878204088d3eb9b78a)
39
-
40
- **Network:** `casper-test` (Casper 2.0)
41
-
42
- **Public RPC:** `https://node.testnet.casper.network/rpc`
43
-
44
- ### Sample Transactions (Testnet)
45
-
46
- | Action | Deploy Hash | Explorer |
47
- |--------|-------------|----------|
48
- | Register agent (buyer) | `d4b7d0ad3b59a97a1165eab1dbc36dbee56ccf8a4bc48f3507071682427d23e0` | [view](https://testnet.cspr.live/deploy/d4b7d0ad3b59a97a1165eab1dbc36dbee56ccf8a4bc48f3507071682427d23e0) |
49
- | Register agent (provider) | `6c41c8858f95af24afaf1267dcb8ced93c654f9a8bddfc722c6638825faac4e8` | [view](https://testnet.cspr.live/deploy/6c41c8858f95af24afaf1267dcb8ced93c654f9a8bddfc722c6638825faac4e8) |
50
- | **PaymentSettled** (`pay_agent`) | `0b55b516058a3482beef0dac2d6997d84b402f82f71a97b3098e2aadaffb0137` | [view](https://testnet.cspr.live/deploy/0b55b516058a3482beef0dac2d6997d84b402f82f71a97b3098e2aadaffb0137) |
51
-
52
- ## Historical Mainnet Deployment (v1)
53
-
54
- > ⚠️ **Warning:** The mainnet v1 deployment is **not valid settlement proof**. The `pay_agent` call recorded a receipt, but value was moved via a separate native transfer. Do not reproduce this flow.
55
-
56
- **Contract Hash:** `contract-9903a5e3948e799196df54b17270bc6769338ac1cc36c9eb47e113f88d23f019`
57
-
58
- **Package Hash:** `hash-7ad34a204952eef63d5dcf5159fb7d009e85dea4f49cbdf73dde190652dfa375`
59
-
60
- **Explorer:** [cspr.live mainnet](https://cspr.live/contract/9903a5e3948e799196df54b17270bc6769338ac1cc36c9eb47e113f88d23f019)
61
-
62
- ## Key Differences from EVM/Solana
63
-
64
- | Feature | EVM v1.4 | Solana v1.4 | Casper v1/v2 |
65
- |---------|----------|-------------|--------------|
66
- | Architecture | 7-contract suite | Single program | Single Wasm contract |
67
- | Language | Solidity | Rust (Anchor) | Rust (Casper SDK) |
68
- | Execution | EVM | SVM (Sealevel) | Casper Wasm |
69
- | Identity | Contract addresses | Program-derived addresses | Account hashes |
70
- | Settlement | Atomic transfer + receipt | Atomic transfer + receipt | v2: atomic; v1: receipt only |
71
-
72
- ## Source
73
-
74
- Data sourced from upstream `AiFinPay/casper-contract` repository.
75
-
76
- **Upstream repo:** https://github.com/AiFinPay/casper-contract
77
-
78
- **Submission:** https://github.com/AiFinPay/casper-contract/blob/main/SUBMISSION.md
79
-
80
- **Architecture docs:** https://github.com/AiFinPay/casper-contract/blob/main/docs/ARCHITECTURE.md
81
-
82
- ## Integration
83
-
84
- Small, runnable examples live in [`examples/`](https://github.com/AiFinPay/casper-contract/tree/main/examples):
85
-
86
- - `register-agent.js` — register an agent
87
- - `pay-agent.js` — settle a payment
88
- - `ai-agent-buys-compute.md` — x402 → Casper flow
89
- - `merchant-integration.md` — gate an endpoint behind settlement
90
- - `mcp-server.md` — drive settlements from Claude via MCP
91
-
92
- ## Reproduce Demo
93
-
94
- ```bash
95
- git clone https://github.com/AiFinPay/casper-contract.git
96
- cd casper-contract
97
- make setup
98
- make keygen
99
- # Fund key at https://testnet.cspr.live/tools/faucet
100
- make agent-demo
101
- ```
9
+ Current network was deprecated and removed from AiFinPay SDK v1.4. The Casper Splitter contract is no longer supported for settlement.
10
+ Deployment records are retained for historical reference and verification of past transactions. Do not attempt to use these records for new settlements.
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "",
2
+ "$schema": "../../../src/reference/payment-deployments.schema.json",
3
3
  "version": "2.0",
4
4
  "description": "Casper Splitter — Rust → Wasm settlement contract for AI agent payments",
5
5
  "schemaVersion": 2,
@@ -54,8 +54,7 @@
54
54
  "network": "casper-test",
55
55
  "environment": "testnet",
56
56
  "testnet": true,
57
- "status": "live",
58
- "settlementEnabled": true,
57
+ "settlementEnabled": false,
59
58
  "contractPackageHash": "hash-47df409829ddf0612617460293ba591a19b26fa0c06918878204088d3eb9b78a",
60
59
  "rpcEndpoint": "https://node.testnet.casper.network/rpc",
61
60
  "explorer": "https://testnet.cspr.live/contract/47df409829ddf0612617460293ba591a19b26fa0c06918878204088d3eb9b78a",
@@ -84,7 +83,6 @@
84
83
  "network": "casper",
85
84
  "environment": "mainnet",
86
85
  "testnet": false,
87
- "status": "historical",
88
86
  "settlementEnabled": false,
89
87
  "contractHash": "contract-9903a5e3948e799196df54b17270bc6769338ac1cc36c9eb47e113f88d23f019",
90
88
  "contractPackageHash": "hash-7ad34a204952eef63d5dcf5159fb7d009e85dea4f49cbdf73dde190652dfa375",
@@ -92,7 +90,6 @@
92
90
  "explorer": "https://cspr.live/contract/9903a5e3948e799196df54b17270bc6769338ac1cc36c9eb47e113f88d23f019",
93
91
  "version": "v1",
94
92
  "idlPath": "../../idl/casper/aifinpay-casper-schema.json",
95
- "disabledReason": "v1: pay_agent recorded receipt but did NOT transfer value; separate native transfer required — not valid settlement proof",
96
93
  "warning": "Do not reproduce this v1 flow. Use v2 testnet deployment for valid atomic settlement."
97
94
  }
98
95
  ],
@@ -2,31 +2,26 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- v1.1 was the initial production version with immutable 1% protocol fee (100 bps) and 1 bps IP creator fee.
5
+ Legacy contract records are retained for reference and migration audits.
6
+ Read [deployments.json](deployments.json) for chain/address, owner/treasury,
7
+ runtime hash, fee and settlement fields. Inspect its provenance metadata instead
8
+ of relying on copied verification dates.
6
9
 
7
- **Status:** Superseded. Settlement disabled. Kept for historical reference and migration audits.
8
-
9
- ## Chains
10
-
11
- | Chain | Splitter Address | Owner/Treasury | Verified |
12
- |-------|-----------------|----------------|----------|
13
- | Base | `0x8Ad9830D16b1f10333866a3f38C949CbB19f4BAD` | `0x1D5eF769A024B3157c76884fbd10302d8d83fAB9` | 2026-08-07 |
14
- | Unichain | `0xeE92807decAa3A02F1e165dd7Efcd92ab9aA83CB` | `0x1D5eF769A024B3157c76884fbd10302d8d83fAB9` | 2026-08-07 |
15
-
16
- ## Runtime Code Hash
17
-
18
- ```
19
- 0x545b3a4ba195edc6b728df8cc64f28da528c9e7805c15f1aa61ef58c3c562197
20
- ```
21
-
22
- ## Fee Structure
10
+ ## Legacy fee structure
23
11
 
24
12
  - `treasuryBps`: 100 (1%)
25
13
  - `ipCreatorBps`: 1
26
14
  - Merchant receives: 99% minus IP creator fee
27
15
 
28
- ## Source
16
+ These describe the legacy interface, not authorization to use it for a new
17
+ payment or a replacement for the selected record's economics.
18
+
19
+ ## Verification
20
+
21
+ Compare the selected chain/version record with live runtime code and mutable
22
+ owner/treasury state. Check actual registry gates and backend receipt-verification
23
+ behavior; a historical record does not prove current availability. Disabled
24
+ records must not settle.
29
25
 
30
- Data sourced from `deployments/registry/reference/splitter-table.json` routes:
31
- - `base:legacy`
32
- - `unichain:legacy`
26
+ See the [registry verification checklist](../../INDEX.md) and
27
+ [route selection guards](../../../../../node/src/splitterRoutes.ts).
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "./reference/payment-deployments.schema.json",
2
+ "$schema": "../../../../src/reference/payment-deployments.schema.json",
3
3
  "version": "1.1",
4
4
  "description": "B2BSplitter v1.1 — Initial production version with immutable fee split",
5
5
  "schemaVersion": 1,
@@ -41,7 +41,6 @@
41
41
  "chainId": 8453,
42
42
  "environment": "prod",
43
43
  "testnet": false,
44
- "status": "retired",
45
44
  "settlementEnabled": false,
46
45
  "runtimeCodeHash": "0x545b3a4ba195edc6b728df8cc64f28da528c9e7805c15f1aa61ef58c3c562197",
47
46
  "contracts": {
@@ -65,7 +64,6 @@
65
64
  "chainId": 130,
66
65
  "environment": "prod",
67
66
  "testnet": false,
68
- "status": "retired",
69
67
  "settlementEnabled": false,
70
68
  "runtimeCodeHash": "0x545b3a4ba195edc6b728df8cc64f28da528c9e7805c15f1aa61ef58c3c562197",
71
69
  "contracts": {
@@ -1,47 +1,34 @@
1
1
  # B2BSplitter v1.2 — Legacy Deployments
2
2
 
3
- ## Overview
3
+ ## Interface and migration
4
4
 
5
- v1.2 added a `bytes32 paymentId` replay guard to prevent double-payment. The entrypoint was renamed from `payMatic` to `payNative` for native settlements.
5
+ v1.2 added a `bytes32 paymentId` replay guard to prevent double-payment.
6
+ The native-settlement entrypoint was renamed from `payMatic` to `payNative`.
7
+ Payment IDs can be derived deterministically from an order ID using
8
+ `keccak256(orderId)`.
6
9
 
7
- **Status:** Superseded. Settlement disabled. Kept for historical reference and migration audits.
10
+ Use [deployments.json](deployments.json) for historical chain/address,
11
+ owner/treasury, runtime hash, fee and settlement records. Read its provenance
12
+ fields rather than relying on copied verification dates.
8
13
 
9
- ## Chains
10
-
11
- | Chain | Splitter Address | Owner/Treasury | Verified |
12
- |-------|-----------------|----------------|----------|
13
- | Polygon | `0xbD1fa5453f212F096c0213788a645eC597FB4DDe` | `0xD31d82c4b35DABaA2ad7023C89A78A052D1f3c8e` | 2026-08-07 |
14
- | Optimism | `0xF03B3387415D557b6ab709D06E8aF0b4ABD6Eb74` | `0x1D5eF769A024B3157c76884fbd10302d8d83fAB9` | 2026-08-07 |
15
- | BOT Chain | `0x147d8fF8c027E24303b5B99CbC8843e1D3dF94cC` | `0x1D5eF769A024B3157c76884fbd10302d8d83fAB9` | 2026-08-07 |
16
- | XRPL EVM | `0x147d8fF8c027E24303b5B99CbC8843e1D3dF94cC` | `0x1D5eF769A024B3157c76884fbd10302d8d83fAB9` | 2026-08-07 |
17
-
18
- **Note:** BOT Chain and XRPL EVM share the same address — same CREATE deployment (deployer + nonce) produces identical addresses on both chains.
19
-
20
- ## Runtime Code Hashes
21
-
22
- | Chain | Code Hash |
23
- |-------|-----------|
24
- | Polygon | `0x9001fbb7ec70097909415325dc70c5b2102c4312dcd8e01e7495cfcaca2edaff` |
25
- | Optimism | `0xcdf939fd4f9a189e3dba991c5d538bd77b3d493d2ce4e356b61e5742dbde1899` |
26
- | BOT Chain | `0xabd084ff64e98bb8ac7db7783d80c6a6bcc69716dfb8f64a4686bed5cf428d96` |
27
- | XRPL EVM | `0xeb68cf314d335f888726a527dec10d989c26e2c5d6a8df68d117cc7d4dcec239` |
28
-
29
- ## Fee Structure
14
+ ## Legacy fee structure
30
15
 
31
16
  - `treasuryBps`: 100 (1%)
32
17
  - `ipCreatorBps`: 1
33
18
  - Merchant receives: 99% minus IP creator fee
34
19
 
35
- ## Key Changes from v1.1
20
+ These describe the legacy interface, not authorization to use it for a new
21
+ payment or a replacement for the selected record's economics.
22
+
23
+ ## Verification
36
24
 
37
- 1. Added `bytes32 paymentId` parameter to prevent replay attacks
38
- 2. Renamed native entrypoint to `payNative`
39
- 3. Deterministic paymentId derivation from order id: `keccak256(orderId)`
25
+ Select by chain and version, never address alone; matching addresses on different
26
+ chains do not imply matching runtime code or governance.
40
27
 
41
- ## Source
28
+ For migration audits, compare the actual record with live runtime code and
29
+ mutable owner/treasury state. Check settlement fields and the actual backend's
30
+ receipt verification before considering any settlement. A registry entry is
31
+ not proof of activation, and settlement-disabled records must not settle.
42
32
 
43
- Data sourced from `deployments/registry/reference/splitter-table.json` routes:
44
- - `polygon:legacy`
45
- - `optimism:legacy`
46
- - `botchain:legacy`
47
- - `xrplevm:legacy`
33
+ See the [registry verification checklist](../../INDEX.md) and
34
+ [route selection guards](../../../../../node/src/splitterRoutes.ts).
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "./reference/payment-deployments.schema.json",
2
+ "$schema": "../../../../src/reference/payment-deployments.schema.json",
3
3
  "version": "1.2",
4
4
  "description": "B2BSplitter v1.2 — Added bytes32 paymentId replay guard",
5
5
  "schemaVersion": 1,
@@ -41,7 +41,6 @@
41
41
  "chainId": 137,
42
42
  "environment": "prod",
43
43
  "testnet": false,
44
- "status": "retired",
45
44
  "settlementEnabled": false,
46
45
  "runtimeCodeHash": "0x9001fbb7ec70097909415325dc70c5b2102c4312dcd8e01e7495cfcaca2edaff",
47
46
  "contracts": {
@@ -65,7 +64,6 @@
65
64
  "chainId": 10,
66
65
  "environment": "prod",
67
66
  "testnet": false,
68
- "status": "retired",
69
67
  "settlementEnabled": false,
70
68
  "runtimeCodeHash": "0xcdf939fd4f9a189e3dba991c5d538bd77b3d493d2ce4e356b61e5742dbde1899",
71
69
  "contracts": {
@@ -89,7 +87,6 @@
89
87
  "chainId": 677,
90
88
  "environment": "prod",
91
89
  "testnet": false,
92
- "status": "retired",
93
90
  "settlementEnabled": false,
94
91
  "runtimeCodeHash": "0xabd084ff64e98bb8ac7db7783d80c6a6bcc69716dfb8f64a4686bed5cf428d96",
95
92
  "contracts": {
@@ -113,7 +110,6 @@
113
110
  "chainId": 1440000,
114
111
  "environment": "prod",
115
112
  "testnet": false,
116
- "status": "retired",
117
113
  "settlementEnabled": false,
118
114
  "runtimeCodeHash": "0xeb68cf314d335f888726a527dec10d989c26e2c5d6a8df68d117cc7d4dcec239",
119
115
  "contracts": {
@@ -1,78 +1,40 @@
1
- # B2BSplitter v1.3 — Active Deployments
1
+ # B2BSplitter v1.3 — Protocol Route Registry
2
2
 
3
- ## Overview
3
+ ## Routes
4
4
 
5
- v1.3 introduced **protocol routes** with immutable fee splits at construction. Two routes per chain:
6
-
7
- ### Routes
5
+ v1.3 introduced protocol routes with immutable fee splits at construction.
8
6
 
9
7
  | Route | Treasury Bps | IP Creator Bps | Description |
10
8
  |-------|--------------|----------------|-------------|
11
9
  | `merchant-aifp1` | 100 (1%) | 0 | AIFP-1 gross-inclusive settlement. Agent pays quoted gross; treasury receives 1%, merchant receives 99%. |
12
- | `agent-x402` | 0 | 0 | AIFP-2/x402 negotiation. Provider receives 100% of quoted price; AiFinPay fee is 0% (future fee-on-top arrives in later version). |
13
-
14
- **Status:** Active. Policy window: 2026-08-27 to 2026-11-25. Settlement enabled only for Amoy testnet.
15
-
16
- ## Chains and Addresses
17
-
18
- ### merchant-aifp1 (100/0)
19
-
20
- | Chain | Splitter Address | USDC | Verified |
21
- |-------|-----------------|------|----------|
22
- | Polygon | `0x27C1C07563c92C1AEa52cC9b4452dF49dC5a7942` | `0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359` | 2026-08-27 |
23
- | Optimism | `0x1Fe2021336596655Fac72bC7bC40F7FFFA501d55` | `0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85` | 2026-08-27 |
24
- | BNB | `0x79D481B835Cb050FAb7a045E619A6Fb9Cd73f510` | — | 2026-08-27 |
25
- | Unichain | `0xF03B3387415D557b6ab709D06E8aF0b4ABD6Eb74` | `0x078D782b760474a361dDA0AF3839290b0EF57AD6` | 2026-08-27 |
26
- | BOT Chain | `0xe855e491D0950140704DB9Cec6B7b3F725360a56` | — | 2026-08-27 |
27
- | Base | `0xB385Cc32fe39CF5B5778DF0Df0e8E9978b5F662a` | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | 2026-08-27 |
28
- | Arbitrum | `0x80e2B445DFc44B3B2254aa376B31AEdDd3Ff934a` | `0xaf88d065e77c8cC2239327C5EDb3A432268e5831` | 2026-08-27 |
29
- | Avalanche | `0xE34Fc0E6694821c600Fa0955C0F74720ea6d8440` | `0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E` | 2026-08-27 |
30
- | XRPL EVM | `0xe855e491D0950140704DB9Cec6B7b3F725360a56` | — | 2026-08-27 |
31
- | Amoy (testnet) | `0xdB772E64F63854bf31f2366BF27e47D5699fe7fC` | `0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582` | 2026-08-29 |
32
-
33
- ### agent-x402 (0/0)
34
-
35
- | Chain | Splitter Address | USDC | Verified |
36
- |-------|-----------------|------|----------|
37
- | Polygon | `0x660Cd915Fc54A7EaE5CEA6854505638bd2A08531` | `0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359` | 2026-08-27 |
38
- | Optimism | `0x38Ef6173ce0AC540f129680C2Aa4Ef739787bdBf` | `0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85` | 2026-08-27 |
39
- | BNB | `0x7656fb8B6627311A7d87273913D31b837Bb2b5A4` | — | 2026-08-27 |
40
- | Unichain | `0xC701F45b3Bae9CA3a58cB33fCBA6291594D17843` | `0x078D782b760474a361dDA0AF3839290b0EF57AD6` | 2026-08-27 |
41
- | BOT Chain | `0x7E92FbE28aAc3a3942FDf019d29172bd02c96Cf0` | — | 2026-08-27 |
42
- | Base | `0x1Fe2021336596655Fac72bC7bC40F7FFFA501d55` | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | 2026-08-27 |
43
- | Arbitrum | `0xE34Fc0E6694821c600Fa0955C0F74720ea6d8440` | `0xaf88d065e77c8cC2239327C5EDb3A432268e5831` | 2026-08-27 |
44
- | Avalanche | `0xF03B3387415D557b6ab709D06E8aF0b4ABD6Eb74` | `0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E` | 2026-08-27 |
45
- | XRPL EVM | `0x7E92FbE28aAc3a3942FDf019d29172bd02c96Cf0` | — | 2026-08-27 |
46
- | Amoy (testnet) | `0xFd1622847A89FB3De240d64DFCbd09C65c77D99d` | `0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582` | 2026-08-30 |
47
-
48
- ## Address Collisions (Important!)
49
-
50
- Same address, different routes/chains — **selection must use chain + route**, never address alone:
10
+ | `agent-x402` | 0 | 0 | AIFP-2/x402 negotiation. Provider receives 100% of quoted price; AiFinPay fee is 0%. |
51
11
 
52
- | Address | Routes |
53
- |---------|--------|
54
- | `0x1Fe2021336596655Fac72bC7bC40F7FFFA501d55` | Optimism `merchant-aifp1`, Base `agent-x402` |
55
- | `0xF03B3387415D557b6ab709D06E8aF0b4ABD6Eb74` | Unichain `merchant-aifp1`, Avalanche `agent-x402`, Optimism v1.2 legacy |
56
- | `0xE34Fc0E6694821c600Fa0955C0F74720ea6d8440` | Arbitrum `agent-x402`, Avalanche `merchant-aifp1` |
57
- | `0xe855e491D0950140704DB9Cec6B7b3F725360a56` | BOT Chain `merchant-aifp1`, XRPL EVM `merchant-aifp1` |
58
- | `0x7E92FbE28aAc3a3942FDf019d29172bd02c96Cf0` | BOT Chain `agent-x402`, XRPL EVM `agent-x402` |
12
+ ## Deployment lookup
59
13
 
60
- ## Governance
14
+ Read [deployments.json](deployments.json) for addresses, assets, runtime hashes,
15
+ governance and settlement metadata. Select records using
16
+ `chainId` and `_route`, never address alone. The same address can occur on
17
+ different chains or routes with different economics.
61
18
 
62
- - **Safe:** `0xFd936f75D9221949f2FEaB54Cd342F7527154eD5`
63
- - **Threshold:** 3 of 5
64
- - **Owners:**
65
- - `0x2118c57dEBD53f614DDfE464Ff2941BE6646cA82`
66
- - `0x3C31dd9daCeC5473cC9B660CD69247A20701cF19`
67
- - `0x25A834b6fEC79e9ee6ED04Ef5b97440149C6Cc24`
68
- - `0x1D5eF769A024B3157c76884fbd10302d8d83fAB9`
69
- - `0x849930eB20ED0a697c71BcE565f18702D202C0F8`
19
+ Do not use a chain-only lookup to select between v1.3 routes:
20
+ [AifinpayRegistry](../../../../src/registry.ts) keys its EVM map by chain ID.
21
+ The SDK's [route resolution code](../../../../../node/src/splitterRoutes.ts)
22
+ defines route-specific lookup and policy checks.
70
23
 
71
- ## Runtime Code Hashes
24
+ ## Verification and provenance
72
25
 
73
- - `merchant-aifp1`: `0x4ba01815b55bf6ed2d608bed91f480c179fd644d706680c3e4a91d8181ba5c6b`
74
- - `agent-x402`: `0x0eb0f8ca7792b13ab70f2aa3e779609cd352d279e925ddcd9e901fd9fd68b1b0`
26
+ Inspect the actual selected registry record and the consumed route table's
27
+ `validFrom`/`validUntil` policy before settlement. Compare deployed runtime code,
28
+ mutable owner/treasury and route economics with the expected values, and obtain
29
+ fresh backend receipt-verification and end-to-end settlement evidence.
75
30
 
76
- ## Source
31
+ See the [verification checklist](../../INDEX.md). Registry metadata and policy
32
+ dates do not establish current availability; settlement-disabled or
33
+ out-of-window routes must not settle.
77
34
 
78
- Data sourced from `deployments/registry/reference/splitter-table.json` routes (all non-legacy entries).
35
+ Read `source`, `sourceArtifact` and `generatedAt` in the JSON for recorded
36
+ provenance. This route snapshot is not regenerated by the
37
+ [grabber](../../../../src/grabber.ts). Downstream generation is implemented in
38
+ [generate-splitter-routes.mjs](../../../../../node/scripts/generate-splitter-routes.mjs);
39
+ from `node/`, `npm run registry:check` checks consistency with the installed
40
+ deployment package, not live verification.