Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Drip

A read-only Robinhood Chain portfolio — see the reinvested dividend yield your raw token balance hides. By jumpbox.

The name is the mechanic: DRIP = dividend reinvestment, which is exactly what a stock token's uiMultiplier accrues.

Robinhood Chain stock tokens are ERC-8056 total-return tokens: the raw balanceOf is static, while uiMultiplier() grows as in-kind dividends reinvest and on splits. A plain ERC-20 balance understates what a holder actually owns. This app surfaces both and the gap — the on-chain yield a naive read misses.

Read-only by design: no wallet required, no keys, no signing. Enter any address and read its positions.

Architecture

One backend, thin clients — the foundation for the web app, a Farcaster miniapp, and an iOS app.

  • Read core (src/lib/rhc/) — viem reads: positions (balanceOf × uiMultiplier), v4 Quoter quotes. Shared with the rhc-mcp server.
  • Read-proxy (src/app/api/rpc) — the RHC RPC endpoint lives only on the server; the browser talks to this same-origin route (fixes CORS, keeps any private endpoint out of client code). It allowlists read-only eth_* methodseth_sendRawTransaction and any state-changing call are refused.
  • Read API (src/app/api/positions, src/app/api/quote) — JSON endpoints all three clients share.
  • Web UI (src/app/page.tsx) — watch-only address entry → positions table.
  • Wallet layer (src/lib/wallet/, src/components/ConnectBar.tsx) — a context-dependent connection resolver, unified to a single address (read-only; we only ever obtain an address, never sign):
    • Farcaster miniapp → the host wallet, via the miniapp SDK's EIP-1193 provider (auto, no prompt).
    • Standalone web → an injected wallet, or WalletConnect when a project id is set.
    • Always → watch-only address entry, which needs no connector at all.

Security posture (read-only)

  • No private keys, no signing, no custody anywhere.
  • Watch-only works with zero wallet connectors — the app is fully functional before any wallet connects.
  • The server holds the only secret (the RPC endpoint); clients ship none.
  • The RPC proxy is method-allowlisted, so a client cannot push a transaction through it.
  • Dependency posture: the wallet stack is pinned to wagmi 3 (patched transitive tree). Privy was evaluated and left out for now — its dependency tree introduced multiple high-severity advisories for no read-only benefit (embedded wallets / signing aren't used here).

Develop

cp .env.example .env.local   # optional; defaults to the public RHC RPC
npm install
npm run dev

Robinhood Chain (chain id 4663)

RPC https://rpc.mainnet.chain.robinhood.com · Explorer robinhoodchain.blockscout.com

License

MIT © jumpbox — jumpbox.tech

About

Drip — a read-only Robinhood Chain portfolio. See the reinvested dividend yield your raw token balance hides. By jumpbox.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages