Skip to content

Security: dvjohnsmith/stryk

Security

docs/security.md

Security model

STRYK is a mainnet DeFi protocol. Every design decision below is made with a concrete failure mode in mind.

Determinism

Every pricing and settlement instruction is deterministic in the strict sense: it uses only fixed-point arithmetic, only account state, and only oracle inputs read at instruction execution. There is no Math.random, no clock drift, and no external HTTP.

Oracle assumptions

Spot prices come from Pyth. If the confidence interval exceeds a per-strategy threshold, the executor pauses the affected vault instead of using stale prices. IV feeds come from Pyth's options oracle when available, and fall back to a rolling 7-day realised variance stored in the vault PDA.

Upgrade authority

The executor program lives behind a multi-sig upgrade authority. Strategy crates are compile-time registered, so any strategy change is an executor upgrade -- there is no runtime set_strategy path.

Auction defaults

Market makers post collateral in $STRYK against every bid. On default the auction layer slashes the collateral and refunds LPs at the failed clearing price. Defaults are detected on the settlement path, not out of band.

Emergency pause

emergency_pause freezes deposits and blocks new auctions on a single vault without touching LP funds. Withdrawals remain possible so LPs are never trapped.

Reporting

Report security issues privately at security@stryk.fi.

There aren't any published security advisories