3b845698f89b331d1d4c3ef75347a81b4fc02809
vz-kore-adapter
Vector Zulu KoreID Translation Layer
Converts Ethereum events (Mint, Burn, Transfer on SV tokens) into KoreID-formatted payloads and posts them back to KoreChain via KoreOracle API.
Architecture
Ethereum mainnet
↓ (Transfer/Mint/Burn events)
eth_listener.py
↓ (KoreID payload)
Redis queue (korechain:outbound_queue)
↓
korechain_poster.py
↓ (mTLS + JWT)
KoreOracle API → KoreChain
Services
| Service | Port | Purpose |
|---|---|---|
| vz-eth-listener | — | Watches SV token events on Ethereum |
| vz-korechain-poster | — | Posts KoreID payloads to KoreChain |
| vz-adapter-api | 8766 | Status, monitoring, manual injection |
KoreID Format
<S1>/<S2>-<S3>-<S4>-<S5>-<S6>
S1 (8) = DDMMYY + CT (ID type)
S2 (8) = PT (parent type) + T (parent treasury) + PNNNNN (parent network)
S3 (4) = CCC (currency) + CK (checksum)
S4 (4) = First 4 hex of current network
S5 (4) = Last 4 hex of current network
S6 (12) = PPPP (parent seq) + T (treasury) + CCCC (current seq) + RRR (nonce)
⚠️ TODO — Awaiting Bryan's spec
The lookup tables in koreid.py and init.sql use placeholder codes.
Once Bryan provides the full KoreID spec with:
kore_id_typecodeskore_treasurycodeskore_networkcodeskore_network_currentcodeskore_currencycodes
Update the DICT constants in koreid.py and the seed data in init.sql.
Also awaiting:
- KoreOracle API endpoint for external event posting (
/api/external/eventis a placeholder) - KoreID format for the
linked_koreidfield (to link VZ events to originating KoreNet transactions)
Deployment
Runs on Charlie (63.245.138.38) alongside charlie-vault-cache.
Shares the same Redis and Postgres instances.
cd ~/vz-kore-adapter
docker compose up -d
API Endpoints
GET /health — service status, queue depth
GET /queue — current queue contents
GET /events — recent posted events
GET /dead-letter — failed events
POST /dead-letter/retry — requeue failed events
POST /generate — generate a test KoreID
POST /inject — manually inject an event
Traceability
Every KoreID payload preserves:
koreid— the KoreID display numberguid— UUIDv4 for internal trackingproof.hash— Ethereum TX hashproof.block_number— block number for verificationproof.chain_reference— KoreID back-referencesource.tx_hash— original Ethereum transaction
Per Bryan's spec: Vector Zulu never strips identity, never generates fake IDs, never bypasses KoreOracle, never rewrites chain history.
Description
Vector Zulu KoreID translation layer — converts Ethereum events to KoreID format and posts back to KoreChain
Languages
Python
100%