Where we are, what just happened, and what comes next · Updated April 7, 2026
| Component | Status | Details |
|---|---|---|
| Node Network | LIVE | 15 nodes — 1 Warden, 12 Bastions, 2 Sentries |
| WSS Challenge Server | LIVE | shardkeep-ws systemd service — Epoch 1, active phase |
| Shard Distribution | LIVE | Shamir splitting (4 tiers: Shield 3/5, Guardian 4/7, Sentinel 5/9, Fortress 7/12) |
| Heartbeat Pipeline | LIVE | PENDING → EVALUATING → AUTHENTICATED → QUALIFIED → ACTIVE |
| Browser Extension | v0.9.0 | Phantom wallet, local vault, Sentry node support |
| Solana Vault Program | DEVNET | 4hfvirYMHxW4nZSuTreWRQQD45Hfc4LKmUyy3hFYcZVP — vault CRUD, untouched |
| cNFT Shard Maps (Track A) | DEVNET | Merkle tree EQALy46B8Q7A... — mint, read, burn via Bubblegum + Helius DAS |
| Operator Blindness | ACTIVE | Server purges node_id after cNFT mint — shard locations exist only on-chain |
| Operator Dashboard | LIVE | /shardkeep/operator/ — nodes, epochs, shards, wallets, staking |
| User Dashboard | SKELETON | /shardkeep/user/ — vault overview, sentry status, settings |
003_rename_node_types.sql executed — ENUM updated, 15 rows migrated/citadel/ → /shardkeep/operator/ (admin/network management)/shardkeep/user/ created (consumer vault dashboard)/shardkeep/ root/var/www/.recycle/citadel_20260406includes/bootstrap.php detects portal availability| Component | Old | New |
|---|---|---|
| WSS Server | vault-ws.py | shard-ws.py |
| Systemd Unit | citadel-vault-ws | shardkeep-ws |
| Agent Script | xnode-agent/xnode.py | sentry-agent/sentry.py |
| Install Script | xnode-agent/install.sh | sentry-agent/install.sh |
| State Directory | /var/lib/citadel/ | /var/lib/shardkeep/ |
| Extension Directory | citadel-vault-extension/ | shardkeep-extension/ |
| Extension Version | Solace Citadel v0.8.2 | ShardKeep v0.9.0 |
| Storage Keys | citadel_* | shardkeep_* (with legacy migration) |
| DB Class | CitadelDB | ShardKeepDB |
citadel_* → shardkeep_* (migration 004_rename_tables.sql, April 7). All 7 tables + all PHP/Python code references updated.
Per On-Chain Shard Map v2, two parallel tracks:
DevNet implementation complete — April 6-7, 2026
EQALy46B8Q7A... (16K leaves). Bubblegum mint/burn in ShardService.php. Helius DAS API for real asset IDs.shardkeep_*. cNFT columns added. shardkeep_shard_maps shadow table created. node_id nullable.storage.js: real shardStore(), shardRetrieve(), shardGetMap(), shardDelete(). get-shard-map API endpoint.shard-ws.py: all shard queries filter node_id IS NOT NULL. Purged entries invisible to WSS.RPC_URL. Monitor 2 weeks. Drop node_id column after validation.DevNet only — 4-6 weeks, parallel
shardkeep_rotation Anchor program. SwapInstruction/SwapEvent schemas.Track D does not block Track A. If successful, replaces server-coordinated rotation with fully on-chain blind swaps.
| Feature | Dependency | Proposal | Horizon |
|---|---|---|---|
| On-chain Node Registry & Bond Staking | Track A complete | Network Architecture v1 | Q3 2026 |
| Reward Distribution (Merkle proofs) | Node Registry | Network Architecture v1 | Q3 2026 |
| Subscription Tiers On-Chain (PDA) | Track A complete | Trust Anchor v3 | Q3 2026 |
| Tokenomics & Token Launch | Node Registry + Rewards | Tokenomics v3.1 | Q3-Q4 2026 |
| Estate Planning (Dead Man's Switch) | On-chain subscriptions | Network Architecture v1 | Q4 2026 |
| Auth-as-a-Service | On-chain subscriptions | Revenue Streams v1 | 2027 |
| Dark Web Monitoring (Harbinger) | Guardian tier subscribers | Revenue Streams v1 | 2027 |
| Governance (SPL Realms) | Token launch | Network Architecture v1 | 2027+ |
/var/www/shared/shardkeep/
├── index.php # Splash page
├── proposals/ # This directory
├── assets/ # Splash CSS/JS/images
├── operator/ # Network admin dashboard
│ ├── includes/ # bootstrap.php, ShardKeepDB, ShardService, Shamir, EpochEngine
│ ├── api/ # heartbeat, shards, node-control, solana bridge, version-check
│ ├── wss/ # shard-ws.py (WebSocket challenge server)
│ ├── sentry-agent/ # sentry.py + install.sh
│ ├── templates/ # header, nav, footer
│ ├── migrations/ # SQL + test scripts
│ └── *.php # dashboard, nodes, epochs, shards, staking, wallets
└── user/ # Vault user dashboard
├── includes/ # auth.php
├── templates/ # header, footer
└── *.php # vault overview, sentry status, settings
/var/www/shared/shardkeep-extension/ # Browser extension (v0.9.0)
/var/lib/shardkeep/ # Runtime state (wss-status.json, wss-notify)
| Role | Name | Bond | Uptime | Hardware |
|---|---|---|---|---|
| Network backbone, challenge coordinators | Warden | $500 | 99.5%+ | Dedicated VPS / bare metal |
| Shard storage & serving | Bastion | $100 | 95%+ | Raspberry Pi, VPS, NAS |
| Lightweight participation | Sentry | $10 | Best-effort | Desktop / laptop (browser extension) |
| Component | File(s) | What it does |
|---|---|---|
| Solana Bridge cNFT | solana-bridge.js |
4 new commands: create-tree, mint-shard-map, read-shard-map, burn-shard-map |
| DAS API Integration | solana-bridge.js |
Helius DAS resolves real Solana asset IDs after mint (base58 addresses) |
| ShardService cNFT | ShardService.php |
mintShardMap(), buildShardMap(), runBridge(). Purges node_id after on-chain confirmation. |
| Shard Map Retrieval | ShardService.php |
retrieveSecret() resolves node locations from shadow table when node_id is purged |
| cNFT Burn on Delete | ShardService.php |
deleteEntry() burns cNFT on-chain — confirmed via DAS burnt: true |
| Shard Map API | api/shards.php |
New get-shard-map action — returns encrypted map + cNFT reference for extension |
| Extension Storage | storage.js |
Tier 2: real shardStore(), shardRetrieve(), shardGetMap(), shardDelete() |
| WSS NULL Handling | shard-ws.py |
3 queries updated: node_id IS NOT NULL filter for delivery, delete, verify loops |
| Schema Migrations | 003, 004, 005 |
Node type rename, table rename (7 tables), cNFT columns + shadow table + nullable node_id |
| Operation | On-Chain | Database | Result |
|---|---|---|---|
| Store | cNFT minted, real asset ID via Helius DAS | 5 shards distributed, node_id purged, shadow table populated |
PASS |
| Retrieve | Read-only (free) | Shard map resolved from shadow table, shards fetched from Bastions | PASS |
| Data Integrity | — | Shamir reconstruction: input = output byte-for-byte | PASS |
| Delete | cNFT burned, DAS confirms burnt: true |
burned_at set, shards marked deleted, retrieval fails correctly |
PASS |
RPC_URL, monitor 2 weeks, then drop node_id column
ShardKeep Roadmap · Updated April 7, 2026
References: On-Chain Shard Map v2,
Network Architecture v1,
Tokenomics v3.1,
Revenue Streams v1