@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.
- package/README.md +133 -0
- package/USAGE.md +534 -0
- package/dist/artifacts.d.ts +62 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/artifacts.js +210 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/build.d.ts +2 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +25 -0
- package/dist/build.js.map +1 -0
- package/dist/grabber.d.ts +42 -0
- package/dist/grabber.d.ts.map +1 -0
- package/dist/grabber.js +379 -0
- package/dist/grabber.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/registry.d.ts +147 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +263 -0
- package/dist/registry.js.map +1 -0
- package/dist/types.d.ts +139 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +14 -0
- package/dist/types.js.map +1 -0
- package/package.json +36 -0
- package/registry/abi/evm/B2BSplitterV14/B2BSplitterV14.json +1318 -0
- package/registry/abi/evm/TimelockWrapper/TimelockWrapper.json +277 -0
- package/registry/abi/tron/.gitkeep +0 -0
- package/registry/idl/aptos/.gitkeep +0 -0
- package/registry/idl/casper/.gitkeep +0 -0
- package/registry/idl/casper/aifinpay-casper-schema.json +108 -0
- package/registry/idl/solana/splitter-v14/splitter.devnet.json +1962 -0
- package/registry/idl/solana/splitter-v14/splitter.mainnet.json +1962 -0
- package/registry/splitter/INDEX.md +163 -0
- package/registry/splitter/casper/README.md +101 -0
- package/registry/splitter/casper/deployments.json +110 -0
- package/registry/splitter/evm/v1.1/README.md +32 -0
- package/registry/splitter/evm/v1.1/deployments.json +45 -0
- package/registry/splitter/evm/v1.2/README.md +47 -0
- package/registry/splitter/evm/v1.2/deployments.json +76 -0
- package/registry/splitter/evm/v1.3/README.md +78 -0
- package/registry/splitter/evm/v1.3/deployments.json +280 -0
- package/registry/splitter/evm/v1.4/README.md +75 -0
- package/registry/splitter/evm/v1.4/deployments.json +358 -0
- package/registry/splitter/solana/README.md +49 -0
- 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).
|