@aifinpay/deployments 1.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.
Files changed (48) hide show
  1. package/README.md +133 -0
  2. package/USAGE.md +534 -0
  3. package/dist/artifacts.d.ts +62 -0
  4. package/dist/artifacts.d.ts.map +1 -0
  5. package/dist/artifacts.js +210 -0
  6. package/dist/artifacts.js.map +1 -0
  7. package/dist/build.d.ts +2 -0
  8. package/dist/build.d.ts.map +1 -0
  9. package/dist/build.js +25 -0
  10. package/dist/build.js.map +1 -0
  11. package/dist/grabber.d.ts +42 -0
  12. package/dist/grabber.d.ts.map +1 -0
  13. package/dist/grabber.js +379 -0
  14. package/dist/grabber.js.map +1 -0
  15. package/dist/index.d.ts +8 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +6 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/registry.d.ts +147 -0
  20. package/dist/registry.d.ts.map +1 -0
  21. package/dist/registry.js +263 -0
  22. package/dist/registry.js.map +1 -0
  23. package/dist/types.d.ts +139 -0
  24. package/dist/types.d.ts.map +1 -0
  25. package/dist/types.js +14 -0
  26. package/dist/types.js.map +1 -0
  27. package/package.json +36 -0
  28. package/registry/abi/evm/B2BSplitterV14/B2BSplitterV14.json +1318 -0
  29. package/registry/abi/evm/TimelockWrapper/TimelockWrapper.json +277 -0
  30. package/registry/abi/tron/.gitkeep +0 -0
  31. package/registry/idl/aptos/.gitkeep +0 -0
  32. package/registry/idl/casper/.gitkeep +0 -0
  33. package/registry/idl/casper/aifinpay-casper-schema.json +108 -0
  34. package/registry/idl/solana/splitter-v14/splitter.devnet.json +1962 -0
  35. package/registry/idl/solana/splitter-v14/splitter.mainnet.json +1962 -0
  36. package/registry/splitter/INDEX.md +163 -0
  37. package/registry/splitter/casper/README.md +101 -0
  38. package/registry/splitter/casper/deployments.json +110 -0
  39. package/registry/splitter/evm/v1.1/README.md +32 -0
  40. package/registry/splitter/evm/v1.1/deployments.json +45 -0
  41. package/registry/splitter/evm/v1.2/README.md +47 -0
  42. package/registry/splitter/evm/v1.2/deployments.json +76 -0
  43. package/registry/splitter/evm/v1.3/README.md +78 -0
  44. package/registry/splitter/evm/v1.3/deployments.json +280 -0
  45. package/registry/splitter/evm/v1.4/README.md +75 -0
  46. package/registry/splitter/evm/v1.4/deployments.json +358 -0
  47. package/registry/splitter/solana/README.md +49 -0
  48. package/registry/splitter/solana/deployments.json +48 -0
@@ -0,0 +1,163 @@
1
+ # Splitter Deployment Registry — Index
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
28
+ ```
29
+
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
152
+
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
157
+
158
+ ## Security Notes
159
+
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.
@@ -0,0 +1,101 @@
1
+ # Casper Splitter v1 — Contract Deployments
2
+
3
+ ## Overview
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.
6
+
7
+ **Status:** Live on Casper testnet. Mainnet v1 is historical (payment recording only, no atomic transfer).
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
+ ```
@@ -0,0 +1,110 @@
1
+ {
2
+ "$schema": "",
3
+ "version": "2.0",
4
+ "description": "Casper Splitter — Rust → Wasm settlement contract for AI agent payments",
5
+ "schemaVersion": 2,
6
+ "generatedAt": "2026-09-14T00:00:00.000Z",
7
+ "ecosystem": "casper",
8
+ "protocolVersion": "v1/v2/v3",
9
+ "idlPath": "../../idl/casper/aifinpay-casper-schema.json",
10
+ "source": {
11
+ "repo": "AiFinPay/casper-contract",
12
+ "url": "https://github.com/AiFinPay/casper-contract",
13
+ "localPath": "/home/daochild/dev/aifinpay/casper-contract"
14
+ },
15
+ "contract": {
16
+ "language": "Rust",
17
+ "runtime": "Wasm",
18
+ "dependencies": {
19
+ "casper-contract": "5.1.1",
20
+ "casper-types": "6.1.0"
21
+ },
22
+ "entryPoints": [
23
+ {
24
+ "name": "register_agent",
25
+ "args": [
26
+ { "name": "agent_id", "type": "String" },
27
+ { "name": "wallet", "type": "String" }
28
+ ],
29
+ "description": "Self-register caller wallet → AgentRegistered event"
30
+ },
31
+ {
32
+ "name": "pay_agent",
33
+ "args": [
34
+ { "name": "from_agent", "type": "String" },
35
+ { "name": "to_agent", "type": "String" },
36
+ { "name": "amount", "type": "U512" },
37
+ { "name": "request_id", "type": "String" }
38
+ ],
39
+ "description": "Record settlement → PaymentSettled event (v2); v1 recorded only"
40
+ },
41
+ {
42
+ "name": "get_payment_count",
43
+ "args": [],
44
+ "description": "Total settled payments"
45
+ }
46
+ ],
47
+ "events": [
48
+ { "name": "AgentRegistered", "fields": ["agent_id", "wallet"] },
49
+ { "name": "PaymentSettled", "fields": ["from", "to", "amount", "request_id"] }
50
+ ]
51
+ },
52
+ "deployments": [
53
+ {
54
+ "network": "casper-test",
55
+ "environment": "testnet",
56
+ "testnet": true,
57
+ "status": "live",
58
+ "settlementEnabled": true,
59
+ "contractPackageHash": "hash-47df409829ddf0612617460293ba591a19b26fa0c06918878204088d3eb9b78a",
60
+ "rpcEndpoint": "https://node.testnet.casper.network/rpc",
61
+ "explorer": "https://testnet.cspr.live/contract/47df409829ddf0612617460293ba591a19b26fa0c06918878204088d3eb9b78a",
62
+ "version": "v2",
63
+ "notes": "Verified deployment — atomic settlement with on-chain receipt",
64
+ "idlPath": "../../idl/casper/aifinpay-casper-schema.json",
65
+ "sampleTransactions": [
66
+ {
67
+ "action": "register_agent (buyer)",
68
+ "deployHash": "d4b7d0ad3b59a97a1165eab1dbc36dbee56ccf8a4bc48f3507071682427d23e0",
69
+ "explorer": "https://testnet.cspr.live/deploy/d4b7d0ad3b59a97a1165eab1dbc36dbee56ccf8a4bc48f3507071682427d23e0"
70
+ },
71
+ {
72
+ "action": "register_agent (provider)",
73
+ "deployHash": "6c41c8858f95af24afaf1267dcb8ced93c654f9a8bddfc722c6638825faac4e8",
74
+ "explorer": "https://testnet.cspr.live/deploy/6c41c8858f95af24afaf1267dcb8ced93c654f9a8bddfc722c6638825faac4e8"
75
+ },
76
+ {
77
+ "action": "PaymentSettled (pay_agent)",
78
+ "deployHash": "0b55b516058a3482beef0dac2d6997d84b402f82f71a97b3098e2aadaffb0137",
79
+ "explorer": "https://testnet.cspr.live/deploy/0b55b516058a3482beef0dac2d6997d84b402f82f71a97b3098e2aadaffb0137"
80
+ }
81
+ ]
82
+ },
83
+ {
84
+ "network": "casper",
85
+ "environment": "mainnet",
86
+ "testnet": false,
87
+ "status": "historical",
88
+ "settlementEnabled": false,
89
+ "contractHash": "contract-9903a5e3948e799196df54b17270bc6769338ac1cc36c9eb47e113f88d23f019",
90
+ "contractPackageHash": "hash-7ad34a204952eef63d5dcf5159fb7d009e85dea4f49cbdf73dde190652dfa375",
91
+ "rpcEndpoint": "https://node.casper.network/rpc",
92
+ "explorer": "https://cspr.live/contract/9903a5e3948e799196df54b17270bc6769338ac1cc36c9eb47e113f88d23f019",
93
+ "version": "v1",
94
+ "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
+ "warning": "Do not reproduce this v1 flow. Use v2 testnet deployment for valid atomic settlement."
97
+ }
98
+ ],
99
+ "integration": {
100
+ "examples": "https://github.com/AiFinPay/casper-contract/tree/main/examples",
101
+ "demoScript": "https://github.com/AiFinPay/casper-contract/blob/main/demo/agent-compute-demo.js",
102
+ "x402Bridge": "https://github.com/AiFinPay/casper-contract/blob/main/demo/compute-bridge.js",
103
+ "mcpsServer": "https://github.com/AiFinPay/casper-contract/blob/main/demo/casper-mcp.mjs"
104
+ },
105
+ "sourceArtifact": {
106
+ "path": null,
107
+ "retrievedAt": "2026-09-14",
108
+ "note": "Data extracted from AiFinPay/casper-contract README and SUBMISSION.md"
109
+ }
110
+ }
@@ -0,0 +1,32 @@
1
+ # B2BSplitter v1.1 — Legacy Deployments
2
+
3
+ ## Overview
4
+
5
+ v1.1 was the initial production version with immutable 1% protocol fee (100 bps) and 1 bps IP creator fee.
6
+
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
23
+
24
+ - `treasuryBps`: 100 (1%)
25
+ - `ipCreatorBps`: 1
26
+ - Merchant receives: 99% minus IP creator fee
27
+
28
+ ## Source
29
+
30
+ Data sourced from `deployments/registry/reference/splitter-table.json` routes:
31
+ - `base:legacy`
32
+ - `unichain:legacy`
@@ -0,0 +1,45 @@
1
+ {
2
+ "$schema": "",
3
+ "version": "1.1",
4
+ "description": "B2BSplitter v1.1 — Initial production version with immutable fee split",
5
+ "status": "superseded",
6
+ "settlementEnabled": false,
7
+ "build": {
8
+ "contract": "B2BSplitterV11",
9
+ "runtimeCodeHash": "0x545b3a4ba195edc6b728df8cc64f28da528c9e7805c15f1aa61ef58c3c562197"
10
+ },
11
+ "feeStructure": {
12
+ "treasuryBps": 100,
13
+ "ipCreatorBps": 1,
14
+ "description": "1% protocol fee + 0.01% IP creator fee; merchant receives remainder"
15
+ },
16
+ "deployments": [
17
+ {
18
+ "chain": "base",
19
+ "chainId": 8453,
20
+ "splitter": "0x8Ad9830D16b1f10333866a3f38C949CbB19f4BAD",
21
+ "owner": "0x1D5eF769A024B3157c76884fbd10302d8d83fAB9",
22
+ "treasury": "0x1D5eF769A024B3157c76884fbd10302d8d83fAB9",
23
+ "rpcQuorum": 2,
24
+ "verifiedAt": "2026-08-07",
25
+ "validFrom": "2026-08-04T00:00:00.000Z",
26
+ "validUntil": "2026-09-03T00:00:00.000Z"
27
+ },
28
+ {
29
+ "chain": "unichain",
30
+ "chainId": 130,
31
+ "splitter": "0xeE92807decAa3A02F1e165dd7Efcd92ab9aA83CB",
32
+ "owner": "0x1D5eF769A024B3157c76884fbd10302d8d83fAB9",
33
+ "treasury": "0x1D5eF769A024B3157c76884fbd10302d8d83fAB9",
34
+ "rpcQuorum": 2,
35
+ "verifiedAt": "2026-08-07",
36
+ "validFrom": "2026-08-04T00:00:00.000Z",
37
+ "validUntil": "2026-09-03T00:00:00.000Z"
38
+ }
39
+ ],
40
+ "sourceArtifact": {
41
+ "path": "../../reference/splitter-table.json",
42
+ "routes": ["base:legacy", "unichain:legacy"],
43
+ "retrievedAt": "2026-08-30"
44
+ }
45
+ }
@@ -0,0 +1,47 @@
1
+ # B2BSplitter v1.2 — Legacy Deployments
2
+
3
+ ## Overview
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.
6
+
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
+ | 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
30
+
31
+ - `treasuryBps`: 100 (1%)
32
+ - `ipCreatorBps`: 1
33
+ - Merchant receives: 99% minus IP creator fee
34
+
35
+ ## Key Changes from v1.1
36
+
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)`
40
+
41
+ ## Source
42
+
43
+ Data sourced from `deployments/registry/reference/splitter-table.json` routes:
44
+ - `polygon:legacy`
45
+ - `optimism:legacy`
46
+ - `botchain:legacy`
47
+ - `xrplevm:legacy`
@@ -0,0 +1,76 @@
1
+ {
2
+ "$schema": "",
3
+ "version": "1.2",
4
+ "description": "B2BSplitter v1.2 — Added bytes32 paymentId replay guard",
5
+ "status": "superseded",
6
+ "settlementEnabled": false,
7
+ "build": {
8
+ "contract": "B2BSplitterV12"
9
+ },
10
+ "feeStructure": {
11
+ "treasuryBps": 100,
12
+ "ipCreatorBps": 1,
13
+ "description": "1% protocol fee + 0.01% IP creator fee; merchant receives remainder"
14
+ },
15
+ "changes": [
16
+ "Added bytes32 paymentId parameter to prevent replay attacks",
17
+ "Renamed native entrypoint from payMatic to payNative",
18
+ "Deterministic paymentId derivation: keccak256(orderId)"
19
+ ],
20
+ "deployments": [
21
+ {
22
+ "chain": "polygon",
23
+ "chainId": 137,
24
+ "splitter": "0xbD1fa5453f212F096c0213788a645eC597FB4DDe",
25
+ "owner": "0xD31d82c4b35DABaA2ad7023C89A78A052D1f3c8e",
26
+ "treasury": "0xD31d82c4b35DABaA2ad7023C89A78A052D1f3c8e",
27
+ "runtimeCodeHash": "0x9001fbb7ec70097909415325dc70c5b2102c4312dcd8e01e7495cfcaca2edaff",
28
+ "rpcQuorum": 2,
29
+ "verifiedAt": "2026-08-07",
30
+ "validFrom": "2026-08-04T00:00:00.000Z",
31
+ "validUntil": "2026-09-03T00:00:00.000Z"
32
+ },
33
+ {
34
+ "chain": "optimism",
35
+ "chainId": 10,
36
+ "splitter": "0xF03B3387415D557b6ab709D06E8aF0b4ABD6Eb74",
37
+ "owner": "0x1D5eF769A024B3157c76884fbd10302d8d83fAB9",
38
+ "treasury": "0x1D5eF769A024B3157c76884fbd10302d8d83fAB9",
39
+ "runtimeCodeHash": "0xcdf939fd4f9a189e3dba991c5d538bd77b3d493d2ce4e356b61e5742dbde1899",
40
+ "rpcQuorum": 2,
41
+ "verifiedAt": "2026-08-07",
42
+ "validFrom": "2026-08-04T00:00:00.000Z",
43
+ "validUntil": "2026-09-03T00:00:00.000Z"
44
+ },
45
+ {
46
+ "chain": "botchain",
47
+ "chainId": 677,
48
+ "splitter": "0x147d8fF8c027E24303b5B99CbC8843e1D3dF94cC",
49
+ "owner": "0x1D5eF769A024B3157c76884fbd10302d8d83fAB9",
50
+ "treasury": "0x1D5eF769A024B3157c76884fbd10302d8d83fAB9",
51
+ "runtimeCodeHash": "0xabd084ff64e98bb8ac7db7783d80c6a6bcc69716dfb8f64a4686bed5cf428d96",
52
+ "rpcQuorum": 1,
53
+ "verifiedAt": "2026-08-07",
54
+ "validFrom": "2026-08-04T00:00:00.000Z",
55
+ "validUntil": "2026-09-03T00:00:00.000Z"
56
+ },
57
+ {
58
+ "chain": "xrplevm",
59
+ "chainId": 1440000,
60
+ "splitter": "0x147d8fF8c027E24303b5B99CbC8843e1D3dF94cC",
61
+ "owner": "0x1D5eF769A024B3157c76884fbd10302d8d83fAB9",
62
+ "treasury": "0x1D5eF769A024B3157c76884fbd10302d8d83fAB9",
63
+ "runtimeCodeHash": "0xeb68cf314d335f888726a527dec10d989c26e2c5d6a8df68d117cc7d4dcec239",
64
+ "rpcQuorum": 1,
65
+ "verifiedAt": "2026-08-07",
66
+ "validFrom": "2026-08-04T00:00:00.000Z",
67
+ "validUntil": "2026-09-03T00:00:00.000Z",
68
+ "note": "Same address as BOT Chain (CREATE deployment with identical deployer + nonce)"
69
+ }
70
+ ],
71
+ "sourceArtifact": {
72
+ "path": "../../reference/splitter-table.json",
73
+ "routes": ["polygon:legacy", "optimism:legacy", "botchain:legacy", "xrplevm:legacy"],
74
+ "retrievedAt": "2026-08-30"
75
+ }
76
+ }
@@ -0,0 +1,78 @@
1
+ # B2BSplitter v1.3 — Active Deployments
2
+
3
+ ## Overview
4
+
5
+ v1.3 introduced **protocol routes** with immutable fee splits at construction. Two routes per chain:
6
+
7
+ ### Routes
8
+
9
+ | Route | Treasury Bps | IP Creator Bps | Description |
10
+ |-------|--------------|----------------|-------------|
11
+ | `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:
51
+
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` |
59
+
60
+ ## Governance
61
+
62
+ - **Safe:** `0xFd936f75D9221949f2FEaB54Cd342F7527154eD5`
63
+ - **Threshold:** 3 of 5
64
+ - **Owners:**
65
+ - `0x2118c57dEBD53f614DDfE464Ff2941BE6646cA82`
66
+ - `0x3C31dd9daCeC5473cC9B660CD69247A20701cF19`
67
+ - `0x25A834b6fEC79e9ee6ED04Ef5b97440149C6Cc24`
68
+ - `0x1D5eF769A024B3157c76884fbd10302d8d83fAB9`
69
+ - `0x849930eB20ED0a697c71BcE565f18702D202C0F8`
70
+
71
+ ## Runtime Code Hashes
72
+
73
+ - `merchant-aifp1`: `0x4ba01815b55bf6ed2d608bed91f480c179fd644d706680c3e4a91d8181ba5c6b`
74
+ - `agent-x402`: `0x0eb0f8ca7792b13ab70f2aa3e779609cd352d279e925ddcd9e901fd9fd68b1b0`
75
+
76
+ ## Source
77
+
78
+ Data sourced from `deployments/registry/reference/splitter-table.json` routes (all non-legacy entries).