Orbital Sentinel

Technical Whitepaper v1.0 · March 2026

Autonomous DeFi health monitoring with verifiable on-chain proofs, powered by Chainlink CRE. Built for the Convergence Hackathon 2026.

0
CRE Workflows
0
On-Chain Proofs
0
Cycles / Day
0
Chainlink Products

Abstract

Orbital Sentinel is an autonomous AI agent platform that monitors DeFi protocol health using Chainlink CRE (Runtime Environment) workflows. Eight independent workflows read live smart contract state from Ethereum mainnet, compute risk assessments (with AI analysis from Claude Haiku and GPT-5.3-Codex), and write cryptographic proof hashes to a Solidity registry on Ethereum Sepolia. A composite intelligence layer synthesizes data from all workflows to produce ecosystem-aware decisions that no single workflow can make in isolation. The flagship LINK AI Arbitrage (LAA) workflow is live on the CRE mainnet DON, running autonomously 7 times per day. Every metric displayed on the dashboard has a corresponding keccak256 proof hash anchored on-chain, creating an immutable, verifiable audit trail of protocol health assessments.

Target Protocol: stake.link, the largest Chainlink liquid staking protocol.
Prize Tracks: CRE & AI, DeFi & Tokenization, Autonomous Agents.

1. The Problem

DeFi dashboards cannot prove their own data.

Traditional DeFi monitoring dashboards pull data from APIs, databases, or third-party aggregators. There is no mechanism to prove that the numbers displayed are authentic, timely, or untampered. A backend server could silently alter metrics, and users would have no way to detect it.

Traditional Dashboards

  • Pull from APIs or databases
  • No proof data is authentic
  • Backend can alter numbers silently
  • Users must "trust the server"
  • No audit trail of historical accuracy

Orbital Sentinel

  • Reads smart contracts directly via CRE
  • keccak256 proof hash per snapshot
  • Proofs immutable on Sepolia
  • Anyone can verify by re-running
  • Permanent audit trail on-chain
graph LR subgraph T["Traditional Dashboard"] direction LR A["Protocol API"] -->|"JSON"| B["Backend Server"] B -->|"Formatted"| C["Dashboard UI"] C -.->|"Trust me"| D(("User")) end subgraph S["Orbital Sentinel"] direction LR E["Smart Contracts"] -->|"CRE EVMClient"| F["CRE Workflow"] F -->|"keccak256"| G["SentinelRegistry"] G -->|"Etherscan"| H(("User")) end style T fill:#1a0a0a,stroke:#FF5252,stroke-width:2px style S fill:#0a1a0a,stroke:#00C853,stroke-width:2px style A fill:#2D3140,stroke:#FF5252,color:#E1E4E8 style B fill:#2D3140,stroke:#FF5252,color:#E1E4E8 style C fill:#2D3140,stroke:#FF5252,color:#E1E4E8 style E fill:#2D3140,stroke:#00C853,color:#E1E4E8 style F fill:#2D3140,stroke:#375BD2,color:#E1E4E8 style G fill:#375BD2,stroke:#4FD4E5,color:#FFFFFF
The key innovation: every number on the dashboard has a cryptographic receipt on-chain. Not "trust us, the API said so," but "here's the hash, run it yourself."

2. Solution Overview

Autonomous monitoring with verifiable proofs.

Orbital Sentinel reads live DeFi protocol data directly from smart contracts, compresses the key metrics into a cryptographic fingerprint (keccak256 hash), and writes that fingerprint on-chain 7 times per day. Anyone can verify the data is real by re-running the same workflow and checking that their hash matches.

The system monitors eight aspects of the stake.link protocol, the largest Chainlink liquid staking service. Each aspect is an independent CRE workflow that reads on-chain state, classifies risk, and produces a verifiable proof.

Beyond individual monitoring, a composite intelligence layer reads data from all workflows simultaneously and feeds it to an AI analyst (GPT-5.3-Codex). This creates cross-workflow intelligence: the AI can see that treasury health, oracle prices, lending market utilization, and bridge status all interact, and can override isolated signals when the broader ecosystem context demands it.

Live on CRE mainnet: The LINK AI Arbitrage (LAA) workflow is deployed and active on the Chainlink CRE DON, running 7x/day autonomously with zero human intervention.

3. System Architecture

Four layers: CRE workflows read data, AI analyzes risk, proofs anchor on-chain, dashboard displays results.

graph TD subgraph CRE["CRE Workflows (Phase 1)"] direction LR W1["Treasury Risk"] W2["Price Feeds"] W3["Morpho Vault"] W4["Curve Pool"] W5["CCIP Lanes"] W6["Governance"] W7["Token Flows"] W8["LAA"] end subgraph AIL["AI Analysis Layer (Phase 1.5)"] direction LR AI1["Claude Haiku Treasury Risk"] AI2["GPT-5.3-Codex Arb + Composite"] end subgraph OC["On-Chain Proofs (Phase 2)"] REG["SentinelRegistry Sepolia"] end subgraph DB["Dashboard"] DASH["Next.js 15 sentinel.schuna.co.il"] end CRE -->|"HTTP + consensus"| AIL CRE -->|"JSON snapshots"| OC AIL -->|"composite proof"| OC OC -->|"HealthRecorded events"| DB style CRE fill:#0d1a3d,stroke:#375BD2,stroke-width:2px,color:#E1E4E8 style AIL fill:#1a2040,stroke:#4FD4E5,stroke-width:2px,color:#E1E4E8 style OC fill:#0d2818,stroke:#00C853,stroke-width:2px,color:#E1E4E8 style DB fill:#1a1a2e,stroke:#9CA3AF,stroke-width:1px,color:#E1E4E8 style REG fill:#375BD2,stroke:#4FD4E5,color:#FFFFFF style DASH fill:#252830,stroke:#4FD4E5,color:#E1E4E8
Ethereum mainnet reads only. All 8 workflows read live contract state from Ethereum mainnet. All writes go exclusively to Sepolia testnet. Zero mainnet write operations, ever.

Data Flow

Phase 1: CRE Execution. Eight workflows read Ethereum mainnet contracts via EVMClient, compute risk metrics, and write JSON snapshots. The LAA workflow runs on the CRE mainnet DON; the other 7 simulate locally.

Phase 1.5: Composite Intelligence. A composite script reads all snapshots and sends cross-workflow context to GPT-5.3-Codex for ecosystem-aware analysis. The AI can override isolated signals.

Phase 2: On-Chain Anchoring. A bridge script (record-all-snapshots.mjs) reads all snapshots, computes keccak256 hashes, and writes them to the SentinelRegistry on Sepolia. Deduplication ensures only changed assessments create new records.

Phase 3: Dashboard. A Next.js 15 application reads HealthRecorded events from Sepolia, stores them in PostgreSQL, and serves per-workflow health data at sentinel.schuna.co.il.

4. Unified Cycle

Three phases, seven times per day: simulate, synthesize, anchor.

sequenceDiagram participant CRON as Unified Cycle
7x/day participant CRE as 7 CRE Workflows participant LAA as LAA on CRE DON participant AI as AI Endpoint
GPT-5.3-Codex participant SR as SentinelRegistry
Sepolia rect rgba(55, 91, 210, 0.15) Note over CRON,LAA: Phase 1: Parallel CRE Execution CRON->>CRE: Trigger 7 local simulations CRE->>CRE: Read Ethereum mainnet contracts Note over LAA: LAA runs independently on DON CRE-->>CRON: 7 JSON snapshots saved end rect rgba(79, 212, 229, 0.15) Note over CRON,AI: Phase 1.5: Composite Intelligence CRON->>AI: Send 6 snapshots for cross-workflow analysis AI->>AI: Evaluate ecosystem context AI-->>CRON: Ecosystem-aware recommendation Note over CRON: cre_composite_snapshot.json end rect rgba(0, 200, 83, 0.15) Note over CRON,SR: Phase 2: On-Chain Proof Anchoring CRON->>SR: Write 8 workflow proofs + 1 composite SR-->>CRON: TX confirmed, hashes immutable end

Schedule (UTC)

TimePhase 1Phase 1.5Phase 2
00:007 CRE simsComposite AI9 proofs to Sepolia
03:007 CRE simsComposite AI9 proofs to Sepolia
07:007 CRE simsComposite AI9 proofs to Sepolia
10:007 CRE simsComposite AI9 proofs to Sepolia
14:007 CRE simsComposite AI9 proofs to Sepolia
17:007 CRE simsComposite AI9 proofs to Sepolia
21:007 CRE simsComposite AI9 proofs to Sepolia

5. The 8 CRE Workflows

Each workflow is an independent CRE project reading live Ethereum mainnet data.

1. Treasury Risk

Local Sim

Staking pool health, reward runway, queue depth. Claude Haiku AI risk assessment.

Community Staked40,875,000 LINK
Community Fill100%
Operator Fill42%
Queue361,030 LINK
Reward Runway572 days
EVMClientHTTPClient CronCapabilityconsensus
keccak256(abi.encode(ts, "treasury", risk, communityFillPct, runwayDays))

Contracts: StakingPool (community + operator), RewardVault, LINK ERC20

2. stLINK Peg Monitor

Local Sim

Chainlink Data Feed reads: stLINK/LINK ratio, LINK/USD, ETH/USD.

stLINK/LINK1.0091
Depeg91.3 bps
LINK/USD$9.12
ETH/USD$2,037.05
EVMClientCronCapabilityData Feeds
keccak256(abi.encode(ts, "feeds", risk, stlinkLinkRatio * 1e6, depegBps * 100))

Feeds: LINK/USD (0x2c1d...9127c), ETH/USD (0x5f4e...b8419)

3. Morpho Vault Health

Local Sim

Morpho Blue utilization, on-chain IRM APY, ERC4626 vault TVL.

Utilization89.38%
Total Supplied142,824 LINK
Total Borrowed127,665 LINK
Borrow APY3.43%
Supply APY3.06%
EVMClientCronCapability
The workflow calls idToMarketParams() on MorphoBlue to find the IRM contract, then borrowRateView() on the IRM to get the per-second borrow rate. supplyAPY = borrowRate * utilization * (1 - protocolFee). No APIs, no oracles: pure smart contract math.

4. Curve Pool Composition

Local Sim

Curve stLINK/LINK pool balances, TVL, virtual price, gauge incentives.

LINK Balance179,134 LINK
stLINK Balance376,230 stLINK
Imbalance17.7%
TVL$5.06M
Gauge Staked545,258 LP
EVMClientCronCapabilityLINK/USD Feed

5. Governance (SLURPs)

Local Sim

Snapshot proposals with bit-packed encoding for 7 recent SLURPs.

Active Proposals1
Urgent (24h)0
Latest SLURPSLURP-61
HTTPClientconsensusCronCapability
7 SLURPs compressed into 4 uint256s. Each SLURP number occupies a 16-bit slot within a single 256-bit number. Vote percentages and counts use the same technique. Pass/fail uses 1 bit each (7 total).

6. CCIP Lane Health

Local Sim

CCIP Router, OnRamp paused state, TokenPool rate limiters.

OK Lanes4 / 4
DestinationsArb, Base, Polygon
EVMClientCronCapabilityCCIP

7. Token Flows

Local Sim

ERC20 balances across 50+ classified addresses: whales, operators, vesting, team.

Total Tracked12,450,000 LINK
Addresses54
EVMClientCronCapability

8. LINK AI Arbitrage (LAA)

Active on DON

Core product. Detects stLINK/LINK arb on Curve. AI signal via GPT-5.3-Codex.

Signalok
Premium17 bps
Priority PoolOpen
Schedule7x/day on DON
EVMClientHTTPClient CronCapabilityconsensus

6. Core Product: LINK AI Arbitrage

The arb mechanism: sell stLINK for LINK on Curve (at a premium), deposit LINK to the Priority Pool at 1:1 to mint new stLINK, pocket the spread.

What LAA Reads (via CRE EVMClient, Ethereum Mainnet)

ContractDataWhy
Curve StableSwap NGbalances(), get_dy() at 4 sizesPool composition + premium quotes with slippage
Priority PoolpoolStatus(), totalQueued()Gate check (open/draining/closed) + queue depth
Arb Vault (optional)totalStLINKHeld(), minProfitBps()Vault state for capital management

Signal Logic

Priority Pool closed?     -> pool_closed
Vault has zero stLINK?    -> no_stlink
Premium <= 0 bps?         -> unprofitable
Premium < minProfitBps?   -> wait
Otherwise                 -> execute

What LAA Cannot See Alone

The LAA workflow only reads the Curve pool and Priority Pool. Without the composite intelligence layer, it has no visibility into:

This is why the composite intelligence layer exists.

7. Composite Intelligence

Five context workflows feed the LAA override decision. The whole is greater than the parts.

graph TD PF["Price Feeds stLINK/LINK: 1.0091 Depeg: 91 bps"] TR["Treasury Risk 100% community fill 361K LINK queued"] MV["Morpho Vault 89.38% utilization 142K LINK supplied"] CP["Curve Pool 17.7% imbalance $5.06M TVL"] CC["CCIP Lanes 4/4 OK"] LAA["LAA Isolated Signal: EXECUTE Premium: 17 bps"] COMP["Composite AI GPT-5.3-Codex Cross-workflow synthesis"] PF --> COMP TR --> COMP MV --> COMP CP --> COMP CC --> COMP LAA --> COMP COMP --> RES["Final Decision: WAIT Confidence: 0.94 Optimal size: 500 stLINK"] style PF fill:#1a2040,stroke:#375BD2,color:#E1E4E8 style TR fill:#1a2040,stroke:#375BD2,color:#E1E4E8 style MV fill:#1a2040,stroke:#375BD2,color:#E1E4E8 style CP fill:#1a2040,stroke:#375BD2,color:#E1E4E8 style CC fill:#1a2040,stroke:#375BD2,color:#E1E4E8 style LAA fill:#2a1a0a,stroke:#FFB300,color:#E1E4E8 style COMP fill:#375BD2,stroke:#4FD4E5,color:#FFFFFF style RES fill:#0d2818,stroke:#00C853,color:#E1E4E8

Real Example (Live Mainnet Data, March 2026)

Isolated LAA signalEXECUTE (17 bps premium, pool open)
Composite recommendationWAIT (ecosystem under stress)
Confidence0.94 (all 5 context workflows loaded)
Optimal swap size500 stLINK (reduced from 5,000)
Why WAIT? "Premium is real and likely to persist (100% community pool fill, 89.65% Morpho utilization), but Priority Pool queue is 365K LINK (slow recycling), stLINK/LINK depeg at 95 bps (basis instability), and premium is thin (16-17 bps). Wait for queue normalization or probe with small size."

How Each Workflow Influences LAA

WorkflowSignalImpact on LAA
price-feedsLINK/USD, depeg bps17 bps arb means nothing if LINK drops 5% during cycle
treasury-riskPool fill, queue depth100% fill = premium persists. 365K queue = slow recycling
morpho-vaultUtilization %89.38% = wstLINK locked as collateral = less sell pressure
ccip-lanesLane statusDegraded lanes restrict cross-chain LINK flows
curve-poolImbalance, TVLDeep imbalance + active gauge = structural premium

Composite Proof Hash

The composite proof encodes metrics from all 6 data sources into a single keccak256 hash:

encodeAbiParameters(
  'uint256 ts, string wf, string risk,
   uint256 premiumBps, uint256 linkUsd,
   uint256 communityFillPct, uint256 queueLink,
   uint256 morphoUtil, uint256 ccipOk,
   uint256 curveImbalance, uint256 confidence',
  [timestamp, 'composite', risk, ...metrics],
)

This creates an on-chain proof of cross-workflow AI reasoning: verifiable data from 6 CRE sources compressed into one tamper-proof record.

8. On-Chain Proof System

Each workflow encodes domain-specific metrics into a single keccak256 hash written to Sepolia.

graph LR A["Raw Metrics from CRE Workflow"] --> B["ABI Encode abi.encode(ts, wf, risk, m1, m2...)"] B --> C["keccak256 32 bytes"] C --> D["SentinelRegistry recordHealth(hash, riskLevel)"] style A fill:#1a2040,stroke:#375BD2,color:#E1E4E8 style B fill:#252830,stroke:#4FD4E5,color:#E1E4E8 style C fill:#375BD2,stroke:#4FD4E5,color:#FFFFFF style D fill:#0d2818,stroke:#00C853,color:#E1E4E8

Why Hashes Instead of Raw Data?

Storing the full snapshot on-chain would cost hundreds of dollars in gas per write. A keccak256 hash is always 32 bytes regardless of input size, costing ~21,000 gas (~$0.01 on Sepolia, ~$2-5 on mainnet). The hash is a deterministic fingerprint: if even one metric changes, the hash is completely different.

Per-Workflow Hash Fields

WorkflowEncoded FieldsRisk Level
treasuryts, "treasury", risk, communityFillPct, runwayDaystreasury:ok|warning|critical
feedsts, "feeds", risk, stlinkLinkRatio*1e6, depegBps*100feeds:ok|warning|critical
morphots, "morpho", risk, utilization*1e6, totalSupplymorpho:ok|warning|critical
curvets, "curve", risk, imbalancePct, tvlUsdcurve:ok|warning|critical
governancets, "governance", risk, activeProposals, urgentProposalsgovernance:ok|warning|critical
ccipts, "ccip", risk, okLanes, totalLanesccip:ok|warning|critical
flowsts, "flows", risk, totalSdlTracked, addressCountflows:ok|warning|critical
laats, "laa", risk, premiumBps, linkBalancelaa:ok|warning|critical
compositets, "composite", risk, premiumBps, linkUsd, fillPct, queue, morphoUtil, ccipOk, curveImbalance, confidencecomposite:ok|warning|critical
Multipliers for precision: All percentage and ratio fields use multipliers (1e4, 1e6) to preserve decimal precision in uint256 (Solidity has no floating-point numbers).

9. SentinelRegistry Contract

52 nSLOC. Append-only. Owner-gated. Deduplicated. Audited.

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

contract OrbitalSentinelRegistry {
    struct Record {
        bytes32 snapshotHash;
        string  riskLevel;
        uint256 timestamp;
        address recorder;
    }

    Record[] public records;
    mapping(bytes32 => bool) public recorded;
    address public owner;
    address public pendingOwner;

    event HealthRecorded(bytes32 indexed snapshotHash, string riskLevel, uint256 ts);
    error NotOwner(); error AlreadyRecorded();
    error EmptyRiskLevel(); error RiskLevelTooLong();

    modifier onlyOwner() { if (msg.sender != owner) revert NotOwner(); _; }
    constructor() { owner = msg.sender; }

    function recordHealth(bytes32 snapshotHash, string calldata riskLevel)
        external onlyOwner
    {
        if (recorded[snapshotHash]) revert AlreadyRecorded();
        if (bytes(riskLevel).length == 0) revert EmptyRiskLevel();
        if (bytes(riskLevel).length > 256) revert RiskLevelTooLong();

        recorded[snapshotHash] = true;
        records.push(Record(snapshotHash, riskLevel, block.timestamp, msg.sender));
        emit HealthRecorded(snapshotHash, riskLevel, block.timestamp);
    }

    function count() external view returns (uint256) { return records.length; }
    function latest() external view returns (Record memory) {
        require(records.length > 0);
        return records[records.length - 1];
    }
}

Key Security Properties

Owner-Gated
Only deployer can write
Deduplicated
AlreadyRecorded guard
Ownable2Step
Two-step transfer
Validated
Non-empty + 256B max

10. Verification Guide

How to independently verify that on-chain proofs match real protocol data.

What Proofs Prove

Step-by-Step Verification

Step 1: Get the snapshot data

Each workflow produces a JSON file (e.g., cre_treasury_snapshot.json) with generated_at_utc and the relevant metrics.

Step 2: Reproduce the hash

import { keccak256, encodeAbiParameters, parseAbiParameters } from 'viem';

// Example: treasury snapshot
const ts = BigInt(Math.floor(
  new Date('2026-03-01T01:44:17Z').getTime() / 1000
));
const fillPct = BigInt(Math.round(100 * 10000));  // 100% x 10,000
const runway  = BigInt(Math.round(572.84 * 100));  // days x 100

const encoded = encodeAbiParameters(
  parseAbiParameters(
    'uint256 ts, string wf, string risk, uint256 fillPct, uint256 runway'
  ),
  [ts, 'treasury', 'critical', fillPct, runway],
);

const hash = keccak256(encoded);
// Compare with on-chain snapshotHash

Step 3: Check on-chain

const logs = await publicClient.getLogs({
  address: '0x35EFB15A46Fa63262dA1c4D8DE02502Dd8b6E3a5',
  event: {
    type: 'event',
    name: 'HealthRecorded',
    inputs: [
      { name: 'snapshotHash', type: 'bytes32', indexed: true },
      { name: 'riskLevel', type: 'string' },
      { name: 'timestamp', type: 'uint256' },
    ],
  },
});

// If your computed hash matches a snapshotHash from logs,
// the data is verified.
Hash match = data proven authentic. Given the same blockchain state, the workflow always produces the same output. This deterministic execution is what makes the proof hashes verifiable.

11. Security Audit

Enhanced 9-phase methodology. 32 tests. 80,000 fuzz iterations. Zero critical findings.

AuditorClaude Opus 4.6 (automated + manual review)
Date2026-03-01
ContractSentinelRegistry.sol (52 nSLOC)
Solidity0.8.19 | Paris EVM | Optimizer: off
Static AnalysisSlither v0.11.5 (0 findings) + Aderyn v0.6.8 (2 Low, by-design)

Findings Summary

IDSeverityStatusDescription
F-1MediumFIXEDNo access control: added owner + onlyOwner modifier
F-2LowAcknowledgedUnbounded records[] array growth (acceptable on Sepolia)
F-3LowFIXEDNo duplicate prevention: added recorded mapping
F-4LowFIXEDUnspecific pragma: locked to 0.8.19
F-5InfoFIXEDNo riskLevel validation: added non-empty + 256B max
F-6InfoAcknowledgedOptimizer disabled (Sepolia, acceptable)
F-7InfoAcknowledgedNo upgrade path (by design for immutability)

Test Coverage

17
Unit Tests
7
Fuzz Tests
7
Deep Audit Tests
80K
Fuzz Iterations

12. Trust Model

Current hackathon demo vs. production DON attestation.

Current (Hackathon Demo)

CRE workflow (local simulate) produces real mainnet data. A single deployer key signs all proof transactions to Sepolia. Data is verifiable (anyone can recompute the hash) but not yet trustless (you trust the operator didn't modify data before hashing).

Production (DON Attestation)

CRE workflows run across N independent DON nodes. Consensus (f+1 agreement) ensures no single party can fabricate results. Observation, computation, and proof are all decentralized. Byzantine fault tolerance guarantees trustless execution.

What CRE Provides Beyond Hashing

You could hash data without CRE. The value CRE adds:

13. CRE Ecosystem Context

Orbital Sentinel uses the same verifiable workflow pattern adopted by major institutions.

CRE Capabilities Used

CapabilityTypeWhat It DoesUsed In
CronTriggerTime-based schedulingAll 8 workflows
EVM ReadExecutionSmart contract reads with DON consensusAll 8 workflows
EVM WriteExecutionSmart contract writes with DON consensusSentinelRegistry writes
HTTP ClientExecutionAPI calls with DON consensusTreasury, governance, LAA

Institutional Adopters

CRE is adopted by major institutions for tokenized asset operations. Orbital Sentinel demonstrates the same verifiable workflow pattern used by:

stake.link is explicitly listed as a CRE adopter alongside these institutions: "Many top Web3 protocols are also integrating CRE, including BridgeTower, Aerodrome, Stake.Link, Concero, Instruxi, and Quantamm."

CRE Upgrade Opportunities

CapabilityPotential Use Case
EVM Log TriggerReplace cron polling with real-time event triggers (RewardAdded, Staked, Withdrawn)
Confidential HTTPEnclave-based calls to proprietary data APIs
HTTP TriggerExternal webhooks (Discord bot triggers sentinel check)
ConsensusMedianAggregationAggregate prices from multiple sources

14. Tech Stack

Production-grade tooling across the full stack.

LayerTechnologyVersion
RuntimeNode / Bun22 / latest
Workflows@chainlink/cre-sdk^1.0.9
Smart ContractsSolidity (Foundry)0.8.19
DashboardNext.js (Turbopack)15.2
UIReact19
ORMdrizzle-orm^0.39
DatabasePostgreSQL15+
On-chain libviem2.34+
AI AnalysisClaude Haiku + GPT-5.3-CodexFlask endpoint
LanguageTypeScript5.7+
Schema Validationzod3.25

16. Deployment Status

LAA is live on the CRE mainnet DON. The other 7 simulate locally.

LAA Workflow: Live on CRE Mainnet

StatusACTIVE ON DON
Workflow ID005f8a760f4b41e09d4646bfeb7ae17d...fe96
Workflow Registry0x4Ac54353FA4Fa961AfcC5ec4B118596d3305E7e5 (mainnet)
DON Familyzone-a
Schedule7x/day (00, 03, 07, 10, 14, 17, 21 UTC)
AI Endpointsentinel-ai.schuna.co.il/api/cre/analyze-arb
AI Cost~$0.004/call (GPT-5.3-Codex)
WorkflowStatusSchedule
LINK AI Arbitrage (LAA) Active on DON 7x/day
treasury-riskLocal Simulate7x/day (unified cycle)
price-feedsLocal Simulate7x/day (unified cycle)
morpho-vault-healthLocal Simulate7x/day (unified cycle)
curve-poolLocal Simulate7x/day (unified cycle)
ccip-lane-healthLocal Simulate7x/day (unified cycle)
governance-monitorLocal Simulate7x/day (unified cycle)
token-flowsLocal SimulateNot in unified cycle

17. Contract Reference

All smart contract addresses referenced by Sentinel workflows.

SentinelRegistry (Write Target)

FieldValue
ContractOrbitalSentinelRegistry
NetworkEthereum Sepolia
Address0x35EFB15A46Fa63262dA1c4D8DE02502Dd8b6E3a5
Key FunctionrecordHealth(bytes32, string)
EventHealthRecorded(bytes32 indexed, string, uint256)
VerifiedSourcify

Mainnet Contracts Read

ContractNetworkRead By
LINK/USD Data FeedMainnetprice-feeds, curve-pool
ETH/USD Data FeedMainnetprice-feeds
Community StakingPoolMainnettreasury-risk
Operator StakingPoolMainnettreasury-risk
RewardVaultMainnettreasury-risk
MorphoBlue + IRMMainnetmorpho-vault-health
Curve StableSwap NGMainnetcurve-pool, LAA
CCIP Router + OnRampMainnetccip-lane-health
Priority PoolMainnetLAA
50+ ERC20 AddressesMainnettoken-flows
Workflow Registry (LAA)MainnetLAA deployment