Why
The umbrella plan states it plainly: settlement rails are infrastructure we USE, not build. Chainlink is the canonical case — its oracle stack is the boring dependency several Jayverse products lean on, and the honest engineering is knowing exactly where each plugs in and what breaks when a feed is wrong or late.
The place worth saying loudly is where an oracle deliberately cannot help. An oracle reports an external truth onto the chain — a price, a reserve balance, a random number. JYVE, the ecosystem token, has no external truth to report: it trades only in our own market, so nothing outside can price it. That is exactly why the token design uses a constant-product mini-AMM (price = reserve ratio) instead of a feed (see jayverse-token-bridge). Reaching for an oracle there is a category error, and naming it prevents the mistake.
The most interesting cooperation is Proof of Reserve against the lesson of the Liquid incident (liquid-issuance-not-authorization): a mint bug produced valid-but-unbacked units and every downstream check honored them. Proof of Reserve is the external attestation that lets a redeem path refuse units the reserve cannot cover — the supply-integrity check that authorization alone never performs.
How it works
Where each Jayverse product plugs in
| Product | Chainlink primitive | Used for | If the feed is wrong/late |
|---|---|---|---|
| Verex (markets) | Data Feeds | resolving real-world-event markets to an objective number | wrong resolution pays the wrong side |
| DeFi study | Data Feeds | price inputs for the from-scratch staking-rate math | accounting drifts from reality |
| Token bridge | CCIP | cross-chain transport (Phase 3) | a stuck/forged message breaks the 1:1 invariant |
| JYVE price | none — deliberately | self-made token has no external price | n/a — priced by our mini-AMM |
| Any peg/reserve | Proof of Reserve | attest backing so redeem can refuse unbacked units | see the Liquid lesson below |
| Games / draws | VRF | verifiable randomness for any draw surface | a biased draw is a rigged game |
| Schedulers | Automation | keeper-triggered ticks without a server timer | a missed tick delays settlement |
The one deliberate non-use
Verex prices YES/NO with LMSR, not an oracle — the market maker sets the price. And JYVE is priced by a constant-product mini-AMM, not a feed, because a token that trades only in our own market has no external truth an oracle could report. Oracles carry external facts onto the chain; where there is no external fact, an oracle is the wrong tool. (jayverse-token-bridge has the pricing rationale.)
Proof of Reserve answers the Liquid class
liquid-issuance-not-authorization showed a mint bug producing valid-but-unbacked units that a correct peg-out faithfully honored — authorization checked the actor, nothing checked the object's backing. Proof of Reserve is that missing check: an external attestation of reserves a redeem path reads to refuse units the reserve cannot cover. It does not fix the mint bug; it stops the drain from being honored. A mint-invariant test (conservation) plus a PoR read (backing) covers both halves the incident exposed.
The rule this card enforces
Use the rail, don't rebuild it — and know the one place it doesn't reach. Every feed is also a dependency with a failure mode, so each cooperation above should carry its 'if the feed is wrong' line in code, not just in this table.
Where it lands in Jayverse
- Rabbit: evaluate Chainlink Automation for triggering scheduled intents or mandates instead of a server timer. This carries the same "a missed tick delays settlement" risk this page names for schedulers.
- gitboard: surface feed staleness and liveness as a monitored dashboard row, not only a contract-level check. Data Feeds heartbeat, later CCIP message status — so a stale price is visible before it causes a wrong resolution.
- CI: add a regression test asserting the JYVE pricing path never calls a Chainlink feed. This guards the deliberate non-use decision against an accidental future wiring.
Key expressions
| Expression | 뜻 · 쓰이는 자리 |
|---|---|
| category error | 범주 착오(근본적으로 잘못된 분류) · 애초에 적용 대상이 아닌 도구를 쓰려 하는 실수. "Reaching for an oracle there is a category error" |
| plug in | (시스템에) 연결되다·꽂히다 · 각 제품이 인프라의 어느 지점에 연결되는지 말할 때. "where each plugs in and what breaks" |
| attestation | (외부의) 증명·확인 진술 · 준비금 등을 외부에서 검증해 알려주는 절차. "an external attestation of reserves a redeem path" |
| keeper-triggered | 키퍼(자동 실행 봇)가 트리거하는 · 서버 타이머 없이 자동으로 실행되는 방식을 가리킴. "keeper-triggered ticks without a server timer" |
| valid-but-unbacked | 형식은 유효하지만 준비금 뒷받침이 없는 · 버그로 생성된 토큰의 상태를 가리키는 표현. "producing valid-but-unbacked units that a correct" |
| faithfully honored | (규칙대로) 충실히 이행되다·인정되다 · 시스템이 틀린 값도 규칙대로 그대로 처리해버림을 가리킴. "peg-out faithfully honored" |
| boring dependency | 지루하지만 꼭 필요한 의존 요소 · 화려하지 않지만 반드시 기대야 하는 인프라를 가리킴. "the boring dependency several Jayverse products lean on" |
| stop the drain | 자금 유출을 막다 · 부정하게 빠져나가는 자산 흐름을 저지하는 것을 가리킴. "it stops the drain from being honored" |
| AMM | 자동화 마켓메이커(Automated Market Maker) · 준비금 비율로 가격이 정해지는 유동성 풀 방식. "a constant-product mini-AMM (price = reserve ratio)" |
| LMSR | 로그 마켓 스코어링 규칙(Logarithmic Market Scoring Rule) · 오라클 대신 마켓메이커가 가격을 정하는 예측시장 방식. "Verex prices YES/NO with LMSR, not an oracle" |
| PoR | 준비금 증명(Proof of Reserve)의 약어 · 상환 경로가 준비금 부족분을 거부할 근거가 되는 외부 증명. "A mint-invariant test (conservation) plus a PoR read" |