Skip to main content
The RedStone policy compares a RedStone price feed against an onchain oracle and checks whether the divergence is acceptable. It is useful when vault operations depend on fresh and reliable market data.

Deployment

FieldValue
Pack idredstone
PolicyData addressesVaultKit address table
Canonical deploymentsdeployments.json

Secret

SecretRequired?Where to get it
NoneKeylessredstone.finance

Data Inputs

The RedStone data oracle returns values such as:
  • redstone_feed_age_seconds
  • divergence_bp
  • prev_snapshot_present
  • prev_divergence_bp
  • sustained_seconds

Rego Checks

Use these exact Rego checks to enforce each guardrail.

Stale Feed

deny contains "redstone_feed_stale" if v.redstone_feed_age_seconds > t.max_feed_age_seconds

Hard Divergence Cap

deny contains "divergence_above_hard_cap" if v.divergence_bp >= t.deny_bp

Sustained Divergence

deny contains "divergence_sustained" if {
    t.enable_sustained_check
    v.prev_snapshot_present
    v.divergence_bp >= t.warn_bp
    v.prev_divergence_bp >= t.warn_bp
    v.sustained_seconds >= t.deny_sustained_seconds
}

Final Allow Rule

allow if count(deny) == 0

Complete Policy

package redstone_oracle_divergence

import future.keywords

default allow := false

t := data.params.redstone
v := data.wasm.redstone

deny contains "redstone_feed_stale" if v.redstone_feed_age_seconds > t.max_feed_age_seconds

deny contains "divergence_above_hard_cap" if v.divergence_bp >= t.deny_bp

deny contains "divergence_sustained" if {
    t.enable_sustained_check
    v.prev_snapshot_present
    v.divergence_bp >= t.warn_bp
    v.prev_divergence_bp >= t.warn_bp
    v.sustained_seconds >= t.deny_sustained_seconds
}

allow if count(deny) == 0