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
├── CODE_OF_CONDUCT.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.
This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Reports of unacceptable behavior can be filed by opening an issue on this repository.
Apache-2.0 — see LICENSE.