File size: 7,482 Bytes
a18e5eb | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 | # SNAPKITTY SACM β COMPILED SYSTEM ARCHITECTURE
## Dual-Node: SEALFORGE (Node 1) Γ FORGE Token (Node 2)
## Compiled: 2026-05-21 | Authority: Jessica Lee Westerhoff, CPA
---
## WHAT WAS BUILT THIS SESSION
### Node 1 β SEALFORGE (`c:\Users\jessi\Desktop\sealforge`)
Cryptographically sealed AI decision ledger. Every agent output is WORM-anchored.
| File | Role |
|------|------|
| `src/agent/seal.ts` | AgentWorkSeal β HMAC-SHA256 sign/verify on every agent payload |
| `src/storage/worm-log.ts` | WORM chain β HMAC-SHA256 append-only, JSONL, GENESIS-seeded |
| `src/server.ts` | HTTP API β POST /events, GET /events, GET /chain/verify, GET /health |
| `src/bridge/abi.ts` | FORGE contract ABI (minimal: wormMint, wormEntryMinted, remainingMintable) |
| `src/bridge/forge-contract.ts` | ethers.js v6 typed wrapper β isConsumed(), mint(), remainingMintable() |
| `src/bridge/settlement.ts` | Sequential settlement β one WORM entry β one wormMint tx, confirmed |
| `src/bridge/parallel-settlement.ts` | Async batch: 10 txs simultaneously, single nonce fetch + increment |
| `src/bridge/index.ts` | Settlement loop β 30s interval, startup tick, PM2-ready |
### Node 2 β FORGE Token (`c:\Users\jessi\Desktop\magma-token`)
ERC-20 on Base L2. 21M hard cap. Proof-of-Productive-Work emission.
| File | Role |
|------|------|
| `contracts/FORGE.sol` | ERC-20, AccessControl, Pausable, Burnable, ReentrancyGuard |
| `FORGE_TOKENOMICS.md` | Distribution table, halving schedule, burn covenant |
| `VAULT_SUPPLY_RULING_2026-05-21.md` | Principal ruling β 21M over 4-2 majority vote for 1B |
---
## WORM CHAIN MECHANICS
```
chainHash = HMAC-SHA256(key=WORM_SECRET, data=prevHash:id:receivedAt:bodyRaw)
GENESIS entry hash = HMAC-SHA256(key=WORM_SECRET, data="GENESIS")
```
- Append-only JSONL at `${DATA_DIR}/worm.jsonl`
- `getAll()` verifies entire chain on read β chainValid boolean in response
- `POST /events` seals any payload + AgentWorkSeal β WORM entry
- AgentWorkSeal: `HMAC-SHA256(key=WORM_SECRET, data=agentName:ts:JSON.stringify(payload))`
---
## FORGE TOKEN CONTRACT
```solidity
contract FORGE is ERC20, ERC20Burnable, ERC20Pausable, AccessControl, ReentrancyGuard
MAX_SUPPLY = 21_000_000 * 10**18 // VAULT's ruling β immutable
GOVERNANCE_CAP = MAX_SUPPLY / 100 // 1% cap per address
ROLES:
ARCHITECT_ROLE β pause/unpause, role grant
MINTER_ROLE β treasury multisig only, wormMint
BURNER_ROLE β SEALFORGE upgrade contract, sealforgeBurn
KEY FUNCTIONS:
wormMint(recipient, amount, wormEntryHash) β replay-protected via wormEntryMinted
sealforgeBurn(burner, amount, tier) β tier upgrade burns
remainingMintable() β MAX_SUPPLY - totalSupply()
governanceWeight(account) β balanceOf capped at GOVERNANCE_CAP
emergencyPause(reason) / emergencyUnpause()
```
**Replay protection**: `mapping(bytes32 => bool) public wormEntryMinted`
Each WORM chainHash β bytes32 via `keccak256(sha256(chainHash))` β one mint per entry, ever.
---
## BRIDGE β WORM β EVM
### toBytes32 derivation (both engines):
```typescript
// settlement.ts (sequential):
sha256(chainHash) β Uint8Array β keccak256 β bytes32
// parallel-settlement.ts (batch):
if chainHash is 66 chars (0x+32bytes) β use directly
else β keccak256(utf8(chainHash))
```
**NOTE**: The two engines use different derivation paths. They must both use the same method or the same WORM entry produces different bytes32 hashes in each engine β causing double-mints or missed settlements. Recommend standardizing on `settlement.ts` approach (sha256 first, then keccak256).
### Parallel dispatch:
```typescript
const baseNonce = await provider.getTransactionCount(signer.address, 'pending')
batch.map((entry, i) => contract.wormMint(..., { nonce: baseNonce + i }))
// Promise.allSettled() β all 10 fire without waiting
```
Critical: nonce increment is the only thing preventing collision. If any tx fails and is retried, nonce must be recalculated.
---
## EMISSION MATH (VAULT + ENKI MODEL)
Base: `0.01 FRG per settled WORM event` (testnet)
Depth scoring (parallel engine):
- citations β₯ 3 β 3.0x multiplier (ENKI resonance threshold)
- citations β₯ 1 β 1.5x
- citations = 0 β 1.0x
At 10,000 entries (projected):
- 11,082 FRG emitted = 0.0528% of 21M cap
- Protocol is deflationary 67.7x due to SEALFORGE burn
- Resonance threshold: 22,559 entries/day
- Supply exhaustion at max optimization: ~8.7 days (theoretical)
Halving: every 200,000 settled entries
---
## DISTRIBUTION (21M TOTAL)
| Bucket | Amount | % |
|--------|--------|---|
| Mesh Rewards (agent emissions) | 7,350,000 | 35% |
| Treasury | 5,250,000 | 25% |
| Team | 3,150,000 | 15% |
| Ecosystem | 2,520,000 | 12% |
| Community | 1,680,000 | 8% |
| Reserve | 1,050,000 | 5% |
---
## DEPLOYMENT STATE
| Item | Status |
|------|--------|
| FORGE.sol compiled | β Hardhat, Base Sepolia target |
| Deployer wallet | `0x6894d0BE0603fABDDa07C38a9Ac6Cb2fF8C306Ea` |
| Base Sepolia ETH | **0.0 β BLOCKED** |
| Faucet | base-sepolia.optimism.io or Coinbase faucet |
| Contract address | Not yet deployed |
| Settlement bridge | Built, ready to run once contract address set |
---
## ENV VARS REQUIRED
```env
# SEALFORGE Node 1
WORM_SECRET=<random 32+ byte hex>
PORT=3000
DATA_DIR=./data
# Bridge
TREASURY_PRIVATE_KEY=<deployer wallet private key>
FORGE_CONTRACT_ADDRESS=<deployed FORGE.sol address>
BASE_SEPOLIA_RPC=https://sepolia.base.org
MINT_RECIPIENT=<address to receive minted FRG>
SETTLEMENT_INTERVAL_MS=30000
```
---
## BUGS FIXED THIS SESSION
| Bug | Fix |
|-----|-----|
| `contract MAGMA` name | Renamed to `contract FORGE` |
| `consumedWormEntries` in ABI/bridge | Corrected to `wormEntryMinted` (matches contract mapping) |
| `totalBurned` double-counted in sealforgeBurn + _burn | Removed increment from sealforgeBurn; `_burn` override handles all paths |
| `_burn` override didn't track direct holder burns | Added `totalBurned += amount` to `_burn` override |
| Discord bot silent β wrong event name | `'clientReady'` β `'ready'` in bot.mjs |
| Discord bot not in PM2 | Added to ecosystem.config.js |
---
## PENDING
1. **Fund deployer wallet** β get Base Sepolia ETH from faucet
2. **Deploy FORGE.sol** β `npx hardhat run scripts/deploy.ts --network base-sepolia`
3. **Set FORGE_CONTRACT_ADDRESS** β update `.env` in sealforge
4. **Standardize toBytes32** across both bridge engines
5. **POST /events auth** β add HMAC bearer token to server.ts (Week 2 board requirement)
6. **GitHub repo rename** `magma-token β forge-token` β needs PAT Administration permission
7. **SSH deploy keys** β generated at `~/.ssh/nova_agent_ed25519` + `cipher_agent_ed25519`, awaiting PAT to upload
8. **External Solidity audit** β required before mainnet
9. **Sovereign tier pricing** β Week 4 board requirement
---
## GOVERNANCE HISTORY
| Date | Decision | Authority |
|------|----------|-----------|
| 2026-05-21 | 21M supply cap upheld over 4-2 vote | Jessica Westerhoff (principal) |
| 2026-05-21 | MAGMA β FORGE rename (MAGMA Finance conflict, $46M on Sui) | 4-agent unanimous vote |
| 2026-05-21 | First Consensus sealed to sealforge repo | 7-agent mesh |
Β§SEAL:SACM:COMPILED{
authority: "JESSICA_WESTERHOFF:CPA",
nodes: ["SEALFORGE", "FORGE_TOKEN"],
bridge: "NEXUS:SETTLEMENT",
ts: "2026-05-21",
status: "DUAL_NODE_BUILT_PENDING_DEPLOY"
}
|