From ad0cbccca48341f50c3e7e4d951575b3ab571bf3 Mon Sep 17 00:00:00 2001 From: ulydev Date: Wed, 28 Oct 2026 09:23:04 +0100 Subject: [PATCH] token-list: name the yield sources of the Stellar IBTs earnUSDC and earnXLM are Upshift vaults; they now say so in extensions.protocol, like sw-USDC/sw-EURC (Blend) and sw-deJTRSY (Centrifuge) already do. New optional extensions.yieldSourceId: the token's id at its protocol's yield data provider when the address alone doesn't identify it. Set on sw-deJTRSY to its Centrifuge share-class token id. The Stellar catalog reads these to source each IBT's base APY instead of a code-side map. Co-Authored-By: Claude Opus 5.5 --- src/schema/token.schema.json | 4 ++++ .../index.json | 3 ++- .../index.json | 3 ++- .../index.json | 3 ++- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/schema/token.schema.json b/src/schema/token.schema.json index 6af38698..41185e67 100644 --- a/src/schema/token.schema.json +++ b/src/schema/token.schema.json @@ -61,6 +61,10 @@ "negativeYield": { "type": "boolean" }, + "yieldSourceId": { + "type": "string", + "description": "The token's id at its protocol's yield data provider, when the token address alone does not identify it (e.g. the Centrifuge share-class token id behind a Stellar deJTRSY wrapper). Read with extensions.protocol." + }, "reported": { "type": "boolean", "description": "Reported by users (illiquid or insolvent vault, suspected hack...). Set it on the token's own entry, not inside a wrapper's extensions.vault: the app warns on every market built on the token, directly or through a Spectra wrapper of it. Report-based and non-exhaustive, not an audit. Remove the key to lift the warning." diff --git a/src/tokens/1500000000/cc6trapqd3nk7thukwpv5sl2jhkqgnxzvb6s6mvyfslrwakefuwzkz7j/index.json b/src/tokens/1500000000/cc6trapqd3nk7thukwpv5sl2jhkqgnxzvb6s6mvyfslrwakefuwzkz7j/index.json index 78f305eb..0a3d66d3 100644 --- a/src/tokens/1500000000/cc6trapqd3nk7thukwpv5sl2jhkqgnxzvb6s6mvyfslrwakefuwzkz7j/index.json +++ b/src/tokens/1500000000/cc6trapqd3nk7thukwpv5sl2jhkqgnxzvb6s6mvyfslrwakefuwzkz7j/index.json @@ -5,7 +5,8 @@ "symbol": "earnXLM", "decimals": 13, "extensions": { - "underlying": "CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA" + "underlying": "CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA", + "protocol": "Upshift" }, "logoURI": "/images/tokens/1500000000/cc6trapqd3nk7thukwpv5sl2jhkqgnxzvb6s6mvyfslrwakefuwzkz7j.svg" } diff --git a/src/tokens/1500000000/ccl3witwffxihv2i52ecv5dpieofstu3pbpr53ilplf2ip5khecxruty/index.json b/src/tokens/1500000000/ccl3witwffxihv2i52ecv5dpieofstu3pbpr53ilplf2ip5khecxruty/index.json index 5f0d5ae4..edc9158b 100644 --- a/src/tokens/1500000000/ccl3witwffxihv2i52ecv5dpieofstu3pbpr53ilplf2ip5khecxruty/index.json +++ b/src/tokens/1500000000/ccl3witwffxihv2i52ecv5dpieofstu3pbpr53ilplf2ip5khecxruty/index.json @@ -5,7 +5,8 @@ "symbol": "earnUSDC", "decimals": 13, "extensions": { - "underlying": "CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75" + "underlying": "CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75", + "protocol": "Upshift" }, "logoURI": "/images/tokens/1500000000/ccl3witwffxihv2i52ecv5dpieofstu3pbpr53ilplf2ip5khecxruty.svg" } diff --git a/src/wrappers/1500000000/cahpzleh6o6wjpicjavrlctycaydn52f4sm6ix3xjkwysaasshgzezbo/index.json b/src/wrappers/1500000000/cahpzleh6o6wjpicjavrlctycaydn52f4sm6ix3xjkwysaasshgzezbo/index.json index 27efd07b..146670e6 100644 --- a/src/wrappers/1500000000/cahpzleh6o6wjpicjavrlctycaydn52f4sm6ix3xjkwysaasshgzezbo/index.json +++ b/src/wrappers/1500000000/cahpzleh6o6wjpicjavrlctycaydn52f4sm6ix3xjkwysaasshgzezbo/index.json @@ -23,6 +23,7 @@ "redeem": false, "wrap": true, "unwrap": true - } + }, + "yieldSourceId": "0x00010000000000040000000000000001" } }