← Back to home
Engineering notes

From the protocol bench

Architecture decisions, simulation results, and audit prep — written by the engineers shipping Zendarox Vault and client builds.

13 articles
Architecture 2 min read

Why we chose isolated markets over pooled lending for Zendarox Vault

Pooled lending optimizes capital efficiency. Isolated markets optimize survivability when one asset blows up. Here is the trade-off we made for v0.4.

Vasco Vicente · CTO & Co-Founder
LendingRiskADR
Smart contracts 1 min read

YieldRouter v0.4: routing deposits without rehypothecation risk

Vault deposit() now calls routeDeposit() with explicit pool caps. A walkthrough of the call path we wired for internal QA.

Lukas Wannenmacher · Head of DeFi Engineering
SolidityYieldRouterVault
Economics 1 min read

Economic simulation v2 before our August audit

How we stress ETH drawdowns, oracle delay, and mercenary LP behavior before auditors arrive — and what we changed after sim v2.

Abdullah Qubbaj · Head of Tokenomics
SimulationRiskAudit prep
Security 1 min read

Foundry invariants we run before every client handoff

A minimal invariant suite that caught reentrancy and share-price drift on a client vault — copy the pattern, not the prose.

Bruno Américo · Crypto Advisor & Technical Lead
FoundryInvariantsAudit
Engineering 1 min read

Building an internal protocol lab for senior reviewers

Why we built a Fastify dashboard with deposit/borrow playgrounds instead of PDFs for technical recruiting.

Nathan Cole · CEO & Co-Founder
ToolingRecruitingAPI
Smart contracts 1 min read

Liquidation bonus tuning in IsolatedMarket

Why our bonus curve changed twice in June — and the sim paths that forced the second revision.

Lukas Wannenmacher · Head of DeFi Engineering
LiquidationSolidityParameters
Architecture 1 min read

Per-market pause vs global circuit breaker

When we pause one market and keep others live — and when the global breaker trips.

Vasco Vicente · CTO & Co-Founder
OperationsRiskGovernance
Security 1 min read

Oracle staleness bounds we document for auditors

Chainlink heartbeat vs our max staleness parameter — and what breaks when they diverge.

Bruno Américo · Crypto Advisor & Technical Lead
OraclesChainlinkAudit
Client delivery 1 min read

ERC-4626 patterns we reuse on client vault builds

Arc Yield and Zendarox Vault share ideas but not code — what we standardize when embedding with client teams.

Mohammad Butmah · Vault Project Manager
ERC-4626VaultsClients
Audit prep 1 min read

What goes in our August audit packet for Zendarox Vault

Scope doc, known issues list, invariant list, and sim scenarios — the package auditors actually use.

Bruno Américo · Crypto Advisor & Technical Lead
AuditDocumentationVault
Engineering 1 min read

Designing the borrow health API for the protocol lab

How /v1/play/borrow mirrors on-chain health factors without running a fork per request.

Vasco Vicente · CTO & Co-Founder
APITypeScriptDashboard
Economics 1 min read

Modeling mercenary LP behavior before client TGE

Relay Labs engagement — how we stress emission schedules when LPs leave after incentives drop.

Abdullah Qubbaj · Head of Tokenomics
TokenomicsSimulationClients
Engineering 1 min read

Foundry CI we run on every client contract PR

Fuzz, invariants, slither, and gas snapshots — the pipeline before code reaches audit.

Bruno Américo · Crypto Advisor & Technical Lead
CIFoundryClients