From 1fc65d59affb6dab8e34c0089ac13b35535a936b Mon Sep 17 00:00:00 2001 From: "stellar-triage-bot[bot]" <333411864+stellar-triage-bot[bot]@users.noreply.github.com> Date: Thu, 15 Oct 2026 15:00:50 +0000 Subject: [PATCH] Add Chainlink and Spectra Finance to the ecosystem catalog Chainlink goes under Oracles with its single proxy, data_id interface and Data Streams requirements. Spectra Finance goes under Yield & Vaults with its docs, mainnet contract list and the permissionless-market caveat. A standards eval checks that agents do not treat the Chainlink proxy as SEP-40. --- .../standards/05-chainlink-oracle.json | 11 ++++++++++ skills/standards/ecosystem.md | 20 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 evals/scenarios/standards/05-chainlink-oracle.json diff --git a/evals/scenarios/standards/05-chainlink-oracle.json b/evals/scenarios/standards/05-chainlink-oracle.json new file mode 100644 index 00000000..d8808580 --- /dev/null +++ b/evals/scenarios/standards/05-chainlink-oracle.json @@ -0,0 +1,11 @@ +{ + "skills": ["standards"], + "query": "My Soroban contract needs a BTC/USD price from Chainlink on Stellar mainnet. Which contract do I call and how do I read the price?", + "expected_behavior": [ + "Loads the standards skill and reads the Chainlink entry in ecosystem.md rather than answering from memory or from Chainlink's EVM docs", + "States that the Chainlink proxy is not SEP-40 and does not call `lastprice()` or other SEP-40 methods on it", + "Calls the single mainnet proxy `CDQBHEUGLDHMSUHG4IH33RJBUTMNCZOT4JIAQR4WZFRDZW6DR6S32ZLZ` with the feed's 32-byte `data_id` instead of inventing a per-feed contract address, and uses the testnet proxy only for testnet", + "Calls `latest_round(data_id, decimals)` with `decimals` set (18 unless Chainlink approved a lower precision) and reads `answer` as an I256 alongside `timestamp`", + "If it suggests Data Streams, says it needs an allowlisted account and on-chain report verification with the Chainlink Verifier" + ] +} diff --git a/skills/standards/ecosystem.md b/skills/standards/ecosystem.md index 9d27c124..a05ebf0b 100644 --- a/skills/standards/ecosystem.md +++ b/skills/standards/ecosystem.md @@ -121,6 +121,16 @@ Yield aggregation and vault infrastructure by PaltaLabs. - **Docs**: https://docs.defindex.io - **Features**: Automated rebalancing, vault management, Blend integration +#### Spectra Finance +Fixed-rate yield markets: splits a yield-bearing asset into a Principal Token (PT) and a Yield Token (YT). Live on Stellar mainnet; Stellar markets accept XLM and USDC and swap them into the market asset first. +- **Use Case**: Lock a fixed rate (buy PT), trade future yield (YT) +- **App**: https://app.spectra.finance/fixed-rate?network=stellar +- **Docs**: https://docs.spectra.finance/docs/stellar +- **Developer docs**: https://dev.spectra.finance/docs/stellar (Core v2 integration, router and limit orders, IBT wrappers, PT bridge, oracle) +- **Mainnet contracts**: https://dev.spectra.finance/docs/technical-reference/deployed-contracts#stellar-mainnet (Registry, PT Factory, Router, Limit Order Engine, PT Bridge, PT Oracle Factory) +- **Features**: Core v2 on Soroban, PT/YT limit orders, Blend wrapper (Blend positions as vault shares), PT bridge to EVM, deterministic zero-coupon-bond PT oracle +- **Caveat**: PT market deployment is permissionless. Registry membership is discovery data, not an allowlist. + ### Stablecoins & CDPs #### Orbit CDP Protocol @@ -319,6 +329,16 @@ Cross-chain oracle with 20,000+ asset support. - **Blog**: https://www.diadata.org/blog/post/soroban-stellar-oracle-dia/ - **Features**: VWAPIR methodology, custom feeds +#### Chainlink +Data Feeds and Data Streams live on Stellar (October 2026). +- **Docs**: https://docs.chain.link/data-feeds/stellar +- **Feed IDs**: https://docs.chain.link/data-feeds/price-feeds/addresses?network=stellar (select Stellar) +- **Proxy (mainnet)**: `CDQBHEUGLDHMSUHG4IH33RJBUTMNCZOT4JIAQR4WZFRDZW6DR6S32ZLZ` +- **Proxy (testnet)**: `CBUF6IADAWPWIDWRTHJNINKXHG2UTIQ6TU2F2HRAXWAI7OT3KJPKK6O4` +- **Interface**: not SEP-40. One proxy serves every feed; select a feed by its 32-byte `data_id`. `latest_round(data_id, decimals)` and `get_round(data_id, round_id, decimals)` return `Round { round_id, answer: I256, timestamp }`. Answers are stored at 18 decimals; pass `18` unless Chainlink approved a lower precision. Interface source: https://github.com/smartcontractkit/chainlink-stellar +- **Example**: BTC/USD `data_id` `01a0b4d920000332000000000000000000000000000000000000000000000000` (same on testnet and mainnet) +- **Data Streams**: pull model; verify signed reports on-chain with the Chainlink Verifier contract. Needs an allowlisted account. Guide: https://docs.chain.link/data-streams/tutorials/stellar-onchain-report-verification + #### Band Protocol Cross-chain data oracle on BandChain. - **Website**: https://bandprotocol.com