Skip to content

feat: add robinhood chain (4663) - #469

Open
matheus1lva wants to merge 2 commits into
mainfrom
feat/add-robinhood-chain
Open

feat: add robinhood chain (4663)#469
matheus1lva wants to merge 2 commits into
mainfrom
feat/add-robinhood-chain

Conversation

@matheus1lva

@matheus1lva matheus1lva commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds Robinhood Chain (chain ID 4663) as a supported indexing chain, plus a manual entry
for its spUSDG/USDG Morpho looper vault.

How to review

  • packages/lib/chains.ts / packages/web/chains.ts: new robinhood chain def, RPC and
    block explorer URLs, multicall3 address.
  • packages/lib/multicall3.ts: activation block wired for the new chain.
  • packages/ingest/prices.ts: added to the price-service chain-name map.
  • config/manuals.yaml: manual vault entry for 0xC7d60aBfa6f4D79C2C42Bf84A54795bD8c586957.
  • .env.example: new HTTP_ARCHIVE_4663 / HTTP_FULLNODE_4663 vars.

Test plan

  • Manual, local integration:
    1. In .env, set HTTP_ARCHIVE_4663 and HTTP_FULLNODE_4663
      (public RPC: https://rpc.mainnet.chain.robinhood.com).
    2. make dev, wait for redis/postgres/ingest/web to come up.
    3. In the terminal pane: ingestfanout abis. Run it twice if the first pass
      only seeds manuals.
    4. Check the vault landed:
      select chain_id, address, label from thing where chain_id = 4663;
      expect 0xC7d60aBfa6f4D79C2C42Bf84A54795bD8c586957 with label vault.
    5. Check snapshot/evmlog rows exist for chain 4663 and evmlog_strides covers blocks
      from inceptBlock 3362381 onward.
    6. Query http://localhost:3001/api/gql for the vault on chainId 4663 and confirm
      name spUSDG/USDG Morpho Looper, asset 0x5fc5…d168, decimals 6.
    7. Prices: with USE_PRICE_SERVICE on, confirm no "unavailable price" loop in ingest
      logs for chain 4663 (chain-name map entry robinhood).
  • Automated (when applicable): not run.

Risk / impact

Additive only, no changes to existing chains. Rollback: remove robinhood from
config/chains.yaml.

@vercel

vercel Bot commented Sep 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
kong Ready Ready Preview Sep 4, 2026 9:41pm UTC

Request Review

@murderteeth murderteeth left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The chain definition itself checks out against the live chain: chain id, multicall3 predeploy, explorer, vault creation block, incept timestamp, asset, decimals and name all match.

Issues

  • Manual entry contradicts the on-chain contract (high) — the vault is a Yearn TokenizedStrategy (apiVersion 3.0.4, share symbol ysUSDG) but is recorded as non-Yearn, non-v3 with no apiVersion, so none of the yearn/3 hooks (reports, fees, performance) run for it and it is absent from every v3- or yearn-filtered API query, which is how most consumers find vaults. config/manuals.yaml:213
    Done when: the thing's defaults match the contract, and vaults(chainId: 4663, v3: true) and vaults(chainId: 4663, yearn: true) both return it.
    Provenance: a7e2d62

  • Price service does not know the new chain name (high, handled in yearn-prices) — every price lookup tested for chain 4663 fails with a server error, in both the exact and batch routes, the same response a made-up chain name gets. Until that lands the vault gets no USD TVL, and because the batch queue is shared across chains, one Robinhood coin in a flush window fails the whole batchHistorical request and pushes every other chain's coins in that window to per-coin fallback calls. The fix is being tracked in the yearn-prices project, not here; this PR just needs to keep 4663 mapped to the name that service ends up using. packages/ingest/prices.ts:208
    Done when: the historical price route for robinhood:0x5fc5…d168 returns 200 or 404 rather than 500, and a mixed batch containing a Robinhood coin returns 200. Test plan step 7 should be re-run once that is true.
    Provenance: a7e2d62


How This Was Reviewed

Reviewed with the review-pr-workflow skill
5 review lenses, each finding independently verified by claude. 1 candidate finding was refuted and dropped.

on-chain apiVersion 3.0.4, symbol ysUSDG, FACTORY 0x770D0d1F. register under vault and strategy labels so yearn/3 hooks run and v3/yearn queries return it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants