Skip to content

Commit 2c36d29

Browse files
authored
Document Base canary deployment
Records the Base V0 canary deployment, smoke-test evidence, current-state/roadmap updates, and follow-up build gaps.
1 parent afecf56 commit 2c36d29

3 files changed

Lines changed: 120 additions & 7 deletions

File tree

docs/CURRENT_STATE.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ This file is the beginner-friendly source of truth for what exists in FlowMemory
88

99
FlowMemory is in launch-candidate V0 hardening.
1010

11-
The bootstrap repository operating system, contracts V0 foundation, crypto V0 foundation, local indexer/verifier fixture package, dashboard V0, FlowRouter hardware POC, local no-value devnet prototype, launch-core contract-event spine, and pre-production hardening guardrails have merged into `main`. The current launch-candidate branch adds swap-derived memory signals, stricter launch validation, and Base Sepolia testnet deploy/read commands.
11+
The bootstrap repository operating system, contracts V0 foundation, crypto V0 foundation, local indexer/verifier fixture package, dashboard V0, FlowRouter hardware POC, local no-value devnet prototype, launch-core contract-event spine, and pre-production hardening guardrails have merged into `main`. The launch-candidate work added swap-derived memory signals, stricter launch validation, and Base Sepolia testnet deploy/read commands.
12+
13+
On 2026-05-13 a small Base mainnet canary deployment was broadcast for V0 testing. It is documented in `docs/DEPLOYMENTS/2026-05-13-base-canary-v0.md`. This is not a production launch and does not change the production/mainnet-readiness guardrails.
1214

1315
The launch-core V0 stack now has a single runnable local command that connects contract fixtures, local indexing/verifier outputs, crypto schema vocabulary, Rootflow transitions, Flow Memory objects, generated dashboard state, local no-value devnet output, and hardware POC output without production deployment.
1416

@@ -54,6 +56,7 @@ Indexer/verifier local package:
5456
- `npm run index:base-sepolia -- --rpc-url <url> --address <contract> --from-block <n> --to-block <n>` provides a constrained Base Sepolia reader path.
5557
- The Base Sepolia reader requires an explicit RPC URL, rejects non-Base-Sepolia chain ids, and persists both canonical state and a durable checkpoint without storing RPC URLs or keys.
5658
- `npm run deploy:base-sepolia` and `npm run deploy:base-sepolia:broadcast` provide Foundry deploy commands for the current V0 Base Sepolia testnet contract set. They require local env values and do not commit credentials.
59+
- A Base mainnet V0 canary deployment exists for testing only; deployed addresses and smoke transactions are recorded in `docs/DEPLOYMENTS/2026-05-13-base-canary-v0.md`.
5760

5861
Dashboard V0:
5962

@@ -112,6 +115,8 @@ Launch-core specifications:
112115
- Production indexer or verifier service runtime.
113116
- Production persistence layer, production live RPC reader, production APIs, or hosted services.
114117
- Base mainnet reader.
118+
- Dashboard ingestion of the Base mainnet canary deployment.
119+
- Contract source verification automation for the deployed canary contracts.
115120
- Explorer or hardware console implementation.
116121
- FlowRouter firmware, manufacturing, final enclosure work, or field deployment.
117122
- Real Meshtastic or LoRa device integration.
@@ -171,9 +176,9 @@ Before assigning agents, check for dirty worktrees and avoid overlapping folders
171176
## Current Operator Priorities
172177

173178
1. Keep the generated launch-core command stable in CI.
174-
2. Exercise the Base Sepolia deploy/read path on explicit testnet contract addresses only.
175-
3. Continue contracts hardening without production mainnet deployment or token mechanics.
176-
4. Keep swap-memory signal semantics narrow until a real Uniswap v4 hook issue scopes the next step.
179+
2. Build a guarded Base canary reader path for the deployed V0 canary addresses.
180+
3. Exercise the Base Sepolia deploy/read path on explicit testnet contract addresses only.
181+
4. Continue contracts hardening without production mainnet deployment or token mechanics.
177182
5. Keep dashboard work fixture-backed until a production API is explicitly scoped.
178183

179184
## Update Rule
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# Base Canary V0 Deployment
2+
3+
Date: 2026-05-13
4+
5+
Status: live Base mainnet canary deployment for V0 testing only.
6+
7+
This is not a production launch, production L1 deployment, token launch,
8+
production verifier network, or production Uniswap v4 hook deployment.
9+
10+
## Network
11+
12+
- Network: Base mainnet
13+
- Chain id: `8453`
14+
- RPC used for deployment/testing: public Base RPC
15+
- Deployer: `0x3A6fBA5a78216ba3a8DA8d8F501dee2C8186aFf9`
16+
- Starting balance observed before dry run: `0.005451853012787615 ETH`
17+
- Balance observed after deploy and smoke actions: `0.005423591837039270 ETH`
18+
- Approximate total ETH spent by deploy plus smoke actions: `0.000028261175748345 ETH`
19+
20+
Private key material was loaded from a local ignored environment file and was
21+
not committed.
22+
23+
## Deployed Contracts
24+
25+
| Contract | Address | Deploy tx | Block |
26+
| --- | --- | --- | --- |
27+
| `RootfieldRegistry` | `0x2a7ADd68a1d45C3251E2F92fFe4926124654a97C` | `0x9ef9cb563646921e8f8dd71ad237054b8ee5b0c8e8ecc0c3b1577661844d6108` | `45955460` |
28+
| `FlowMemoryHookAdapter` | `0x179Df6d52e9DeF5D02704583a2E4E5a9FF427245` | `0xab22f1b9a19c090c63d4b3a4e100cf80571f5142ab91620fbc76d739d1f318b9` | `45955461` |
29+
| `ArtifactRegistry` | `0x8F074d0F4e66975b740A4b7a316330c9660a485E` | `0xbd07e7d0280a20344521628b13353152da859e62fdcdb4355bf04b50a4176b0b` | `45955462` |
30+
| `CursorRegistry` | `0x3360689009685eade15c876855D24161b05829C1` | `0x7eecbb949a617bff8fc8c0749a3332e1e2d2fe7b17f0cf3d7522155f5675cee9` | `45955463` |
31+
| `ReceiptVerifier` | `0x94ba7aA4562f8F8528C327378F6352350f6ddB5B` | `0x3b29454ebb4104e38a0f886a4a370f26d3e3bc5ab22bbfb921374fa904e38e95` | `45955464` |
32+
| `WorkerRegistry` | `0xa8c07eF53Eeb4e57297ee35025a9cD5303fCCD29` | `0x213a1ba85d6e998937c907699be83b7cd7db9eba4e43f937f94ad7b62bf3cfde` | `45955465` |
33+
| `VerifierRegistry` | `0xAf920ca7436Bb72172E27C96E0B716f01dcC5DBd` | `0x87696577de6522f885a67c9df98fd8942387e7e7c735f3215f067b2cbc913d2f` | `45955466` |
34+
| `WorkReceiptRegistry` | `0x2874cee0D581E4562ac9015BfCf330f1ea58a1F3` | `0xa278992a28c2a1ad9e4c78998dbbfb43399e55182ca93f8aac40e9447b2f854f` | `45955467` |
35+
| `VerifierReportRegistry` | `0x95bC7455AdFD60e1B908ba455c25Ae732C1Ef996` | `0x9def1a9338bf65e04bc43fd3f4ef1bb973ebdf1ee4b351a77157c396da6af074` | `45955468` |
36+
| `WorkDebtScheduler` | `0xa752e9bC7fAf39f659110D8Cf408E7707db94E34` | `0x139e3b89b0c674c6031d34fbfafb2649e114443ed7b98b9722d59bc19ffb6bdc` | `45955469` |
37+
38+
All 10 deployed addresses returned non-empty bytecode through `cast code`.
39+
40+
## Smoke Actions
41+
42+
Rootfield id:
43+
44+
```text
45+
0x19c830e926bfd3ce06d71ed0ef2e90ddc73accf4367b0defea835dc1cd3b3114
46+
```
47+
48+
### Rootfield Registration
49+
50+
- Transaction: `0x994b98b1cff0c897d75b62cf7c95340f74a59d0c208af68f1dea2d161b80cf00`
51+
- Block: `45955506`
52+
- FlowPulse pulse id: `0xa62ffb4b36a415032949138edbdcba5005de2e35952df88bdf592d4266184b87`
53+
- Pulse type: `1` / `ROOTFIELD_REGISTERED`
54+
55+
### Root Submission
56+
57+
- Transaction: `0x24a43789ef489dd6c697567466944a210273e46c333e7be878cda6df9acb8e7a`
58+
- Block: `45955533`
59+
- FlowPulse pulse id: `0x72407268a2ea62659d6b0f62800931936cc6ea7ea5f5b6db91801ba2f8b43eab`
60+
- Pulse type: `2` / `ROOT_COMMITTED`
61+
- Latest root after smoke action:
62+
`0x4a7b8601c06c20bcc7b69c05c51980c12dbd50cbd95a59f460d40555bfc37ce3`
63+
64+
### Swap-Memory Signal
65+
66+
- Transaction: `0xaee21f6d0e9df1a45eae0c7714a4f8eae7fb72afbb07dd67b3a1f0ff724a014f`
67+
- Block: `45955535`
68+
- FlowPulse pulse id: `0x16c2adf5f3e46ee91d16a432d2420c566851b311e767860cab99068dcaca2591`
69+
- Pulse type: `4` / `SWAP_MEMORY_SIGNAL`
70+
- Commitment:
71+
`0x30055afe075a7c6ea8557ea3a2d3c7012d9d558ebda95803726179355f98ede9`
72+
73+
## State Readback
74+
75+
`RootfieldRegistry.getRootfield(rootfieldId)` returned:
76+
77+
```text
78+
owner: 0x3A6fBA5a78216ba3a8DA8d8F501dee2C8186aFf9
79+
schemaHash: 0x0b4537a7fa7cdd45fd6ff2052f1e4f9087a40b09fb6fe06a686ac67ac96fa5c3
80+
metadataHash: 0x5f2a82ffa386793a2a67971ab801b2633b76954a95ee873e463730e6442ef90d
81+
latestRoot: 0x4a7b8601c06c20bcc7b69c05c51980c12dbd50cbd95a59f460d40555bfc37ce3
82+
pulseCount: 2
83+
rootCount: 1
84+
active: true
85+
```
86+
87+
## Important Gaps Found
88+
89+
1. The checked-in live reader is Base Sepolia-only and intentionally rejects
90+
Base mainnet chain id `8453`. A guarded Base canary reader is needed before
91+
the dashboard can ingest live mainnet canary logs.
92+
2. The dashboard still consumes generated fixtures. It does not yet ingest a
93+
deployment artifact plus live read output.
94+
3. Contract source verification is not automated for all deployed contracts.
95+
4. `FlowMemoryHookAdapter` is still an adapter scaffold. It is not a production
96+
Uniswap v4 hook wired into PoolManager permissions.
97+
5. Ownership is still direct deployer ownership where applicable. There is no
98+
multisig, governance, recovery, or operational key policy.
99+
6. Verifier and worker registry flows are deployed, but live verifier report
100+
submission, report signing, and verifier economics are not built.
101+
102+
## Notes
103+
104+
The first registration command encountered a public-RPC nonce race after the
105+
transaction landed. The chain state and FlowPulse log were checked directly
106+
before subsequent smoke actions were sent.

docs/ROADMAP.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ Status: implemented as fixture-first services plus generated launch-core state;
6868
- Deterministic persistence exists for fixture state and the constrained Base Sepolia reader checkpoint.
6969
- A Base Sepolia reader path exists for explicit RPC URLs and explicit FlowPulse contract addresses; it rejects non-Base-Sepolia chain ids.
7070
- Base Sepolia deploy/read commands exist for the current V0 testnet contract set.
71+
- A Base mainnet V0 canary deployment has been performed for testing only and is documented under `docs/DEPLOYMENTS/`.
7172
- Runtime schema validation and generated fixture drift checks exist for launch-core outputs.
7273
- Local devnet smoke-test gates exist as a no-value Rust prototype, without mainnet or production deployment.
7374

@@ -141,7 +142,8 @@ The initial merge sequence has completed for repo OS, contracts foundation, cryp
141142

142143
Next merge preference:
143144

144-
1. Base Sepolia reader soak tests against explicit testnet deployments.
145-
2. Dashboard polish and explorer/hardware-console separation.
146-
3. Static analysis follow-up findings triaged for any public testnet deployment.
145+
1. Guarded Base canary reader and deployment-artifact ingestion.
146+
2. Base Sepolia reader soak tests against explicit testnet deployments.
147+
3. Dashboard live/canary mode separation from generated fixtures.
148+
4. Static analysis follow-up findings triaged for any public testnet deployment.
147149
5. Production-gated research only after V0 local acceptance stays green.

0 commit comments

Comments
 (0)