Protocol-grade integration layer for the Stellar / Vero ecosystem. ZK-ready Β· Audit-first Β· Circuit-protected Β· Multi-sig governed
vero-core-engine is the secure, audit-ready bridge that unifies:
- Soroban smart contracts (vero-core-contracts)
- Event relayer service (vero-relayer-service)
- Guardian dashboard (real-time monitoring + governance)
into a single, cohesive integration layer.
| Property | Mechanism |
|---|---|
| Integrity | ZK-audit hooks validate every state transition via chained hash commitments |
| Liveness | RPC failover across multiple Horizon/Soroban nodes; no single point of failure |
| Governance | Multi-sig proposals with time-lock + veto window before execution |
| Safety | Emergency circuit-breaker halts all state transitions instantly |
| Auditability | Structured event propagation with cursor-based replay to guardian dashboard |
graph TD
subgraph Stellar Network
SC[Soroban Contract\nvero-core]
RPC[Horizon / Soroban RPC\nmulti-node failover]
SC -- events --> RPC
end
subgraph engine-core [engine-core Β· Rust Β· Soroban]
CB[circuit_breaker\ntrip / reset]
AUD[audit\nZK state validation]
GOV[governance\nmulti-sig + timelock]
CB -- guards --> AUD
CB -- guards --> GOV
end
subgraph engine-bridge [engine-bridge Β· TypeScript]
RpcC[RpcClient\nfailover + quarantine]
NM[NonceManager\natomic seq reservation]
EP[EventPropagator\ncursor-based streaming]
RpcC --> NM
RpcC --> EP
end
RPC --> RpcC
SC --> engine-core
EP --> Dashboard[Guardian Dashboard\nWebSocket feed]
GOV --> SC
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Stellar Network β
β ββββββββββββββββ events ββββββββββββββββββββββββββββββββ β
β β vero-core β βββββββββΊ β Horizon / Soroban RPC nodes β β
β β (Soroban) β βββββββββββββββ¬βββββββββββββββββ β
β ββββββββββββββββ β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β failover pool
ββββββββββββββββββββΌβββββββββββββββββββ
β engine-bridge (TS) β
β ββββββββββββββ βββββββββββββββββ β
β β RpcClient β β NonceManager β β
β β (failover) β β (atomic seq) β β
β βββββββ¬βββββββ βββββββββββββββββ β
β βββββββΌβββββββββββββββββββββββββββ β
β β EventPropagator (cursor-based) β β
β βββββββββββββββββββββββ¬βββββββββββ β
ββββββββββββββββββββββββββββββββββββββββ
β EngineEvent
ββββββββββββββββββββββββββΌββββββββββββββ
β Guardian Dashboard β
β WebSocket feed Β· Anomaly detection β
βββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββ
β engine-core (Rust/Soroban) β
β audit::validate_transition β
β governance::approve / execute β
β circuit_breaker::trip / reset β
ββββββββββββββββββββββββββββββββββββββββ
vero-core-engine/
βββ engine-core/ # Rust β ZK audit, multi-sig governance, circuit-breaker
β βββ Cargo.toml
β βββ src/
β βββ lib.rs
β βββ types.rs # StateCommitment, Proposal, BreakerState
β βββ audit.rs # ZK state-commitment validation
β βββ governance.rs # Multi-sig proposals with time-lock
β βββ circuit_breaker.rs
βββ engine-bridge/ # TypeScript β RPC failover, nonce, event streaming
β βββ package.json
β βββ tsconfig.json
β βββ jest.config.js
β βββ src/
β βββ index.ts
β βββ rpc-client.ts # Failover across Horizon/Soroban nodes
β βββ nonce-manager.ts # Atomic sequence-number reservation
β βββ event-propagator.ts # Soroban event β dashboard stream
β βββ __tests__/
βββ docs/
β βββ adrs/ # Architecture Decision Records
β βββ incidents/ # Post-incident reports
βββ security/ # Symlink β SECURITY.md + incident artefacts
βββ .github/
β βββ ISSUE_TEMPLATE/
β β βββ feature_request.md
β βββ workflows/ # CI/CD (add as needed)
βββ SECURITY.md
βββ CONTRIBUTING.md
βββ DEVELOPMENT_ROADMAP.md
βββ BUILD_ENGINE.sh # One-shot scaffold + build + health-check
βββ Cargo.toml # Workspace root
| Tool | Minimum Version |
|---|---|
| Rust + Cargo | 1.78 (stable) |
| Node.js | 20 LTS |
| Stellar CLI | 0.9 |
| Docker | 24 |
gh CLI |
2.x |
git clone https://github.com/your-org/vero-core-engine.git
cd vero-core-engine
./BUILD_ENGINE.sh scaffoldcp .env.example .env
# Set: STELLAR_NETWORK, RPC_URLS (comma-separated), SIGNING_KEY, GUARDIAN_ADDRESSdocker compose up -d stellar-validator
# Wait for RPC readiness:
until curl -sf http://localhost:8000/health; do sleep 2; done./BUILD_ENGINE.sh build
# Compiles engine-core (Rust) and engine-bridge (TypeScript)stellar contract build # builds vero-core WASM
stellar contract deploy --wasm target/wasm32-unknown-unknown/release/vero_core.wasm \
--network testnet --source $SIGNING_KEY
# Export the returned contract ID:
export CONTRACT_ID=<returned-id># Initialise governance (3-of-5 multi-sig, 720-ledger time-lock)
stellar contract invoke --id $CONTRACT_ID -- init_governance \
--signers "$SIGNER1,$SIGNER2,$SIGNER3,$SIGNER4,$SIGNER5" \
--threshold 3
# Initialise circuit-breaker guardian set
stellar contract invoke --id $CONTRACT_ID -- init_breaker \
--guardians "$GUARDIAN_ADDRESS"cd engine-bridge
RPC_URLS="$RPC_URLS" CONTRACT_ID="$CONTRACT_ID" \
node dist/index.js
# Subscribes to events, fans out to dashboard via EventPropagator./BUILD_ENGINE.sh health
# Expected: β on all componentsValidates a StateCommitment against the chain of prior hashes. Panics on replay or hash mismatch.
Submits a proposal. Proposer must be in the signer set.
Records a signer approval (requires auth). Time-lock starts when threshold is first met.
Executes after threshold approvals + time-lock expiry.
Halts all state transitions. Emits CB/tripped event.
Resumes normal operation. Emits CB/reset event.
Round-robin RPC with 30-second quarantine on failed endpoints.
const rpc = new RpcClient([
"https://soroban-testnet.stellar.org",
"https://rpc-testnet.stellar.org",
]);
const ledger = await rpc.call(s => s.getLatestLedger());Serialises sequence-number reservation per account. Returns sequences for release on failure.
const nm = new NonceManager(rpc);
const seq = await nm.reserve("GACCOUNTβ¦");
try {
// build + submit tx with seq
} catch {
nm.release("GACCOUNTβ¦", seq);
}Long-poll event streaming with cursor persistence for replay-on-restart.
const ep = new EventPropagator(rpc, CONTRACT_ID, process.env.EVENT_CURSOR);
ep.onEvent(async (event) => {
// push to dashboard WebSocket, write to DB, etc.
});
ep.start();
// On shutdown: persist ep.getCursor() to resume cleanlySee DEVELOPMENT_ROADMAP.md for the full milestone tracker.
Engine layer (this repo):
- engine-core: ZK audit, multi-sig governance, circuit-breaker
- engine-bridge: RPC failover, nonce management, event propagation
- BUILD_ENGINE.sh automation
- SECURITY.md with incident response playbooks
- GitHub issue template (Gold Standard)
- CI/CD workflow (GitHub Actions)
- Docker Compose for full local stack
- gRPC streaming API
See SECURITY.md for the vulnerability disclosure policy, incident response playbooks, and safe-harbor commitment.
Apache-2.0 β see LICENSE.