Documentation

Runs on an empty config file.

No accounts, no onboarding, no signup keys. Point a wallet at Robinhood Chain and the terminal fills itself in. The registry, the network reads, the calendar and every page render with nothing configured at all. Keys are additive, not load-bearing: they buy live equity quotes and an optional intelligence layer, and the app degrades cleanly without them.

Getting started

  1. Add Robinhood Chain to your wallet. Parameters are below - most wallets will offer to add it automatically when you connect.
  2. Connect. Injected wallets (MetaMask, Rabby, Phantom), Coinbase Wallet, or WalletConnect. Vortif receives a public address, nothing else.
  3. Positions sync. Stock Token balances and transfer history are read from chain. If you are on the wrong network, the connect dialog will prompt you to switch.
  4. Open the desks. Portfolio, tax, dividends, governance, lending, collateral, advisor, news and insights all derive from those same positions.

Connecting to Robinhood Chain

Robinhood Chain is an Arbitrum Orbit L2 that settles to Ethereum and pays gas in ETH. Mainnet went live on 1 July 2026.

Network name
Robinhood Chain
Chain ID
4663 (hex 0x1237)
Currency
ETH · 18 decimals
RPC URL
https://rpc.mainnet.chain.robinhood.com
Testnet chain ID
46630 · RPC https://rpc.testnet.chain.robinhood.com/rpc

Do not use the public RPC in production. Robinhood’s own docs state that rpc.mainnet.chain.robinhood.com is rate-limited and not intended for production traffic; they recommend Alchemy. Vortif uses the public endpoint only as a local-dev fallback when no Alchemy id is configured.

Two identifiers are widely misreported. The testnet RPC carries a /rpc suffix that several write-ups omit, and the testnet chain id is 46630 - not 46646. Mainnet 4663is confirmed against the chain’s own node (eth_chainId returns 0x1237).

API routes

Every route runs on the Node runtime and is force-dynamic - provider keys are read at request time, never baked in at build. Errors return a JSON body with a message; upstream failures are normalized rather than forwarded raw.

GET/api/health

Which provider keys actually landed in the deploy.

Reports presence only, never values. The fastest way to diagnose an empty dashboard after a deploy.

GET/api/chain?address=0x…&limit=20

Token balances and recent transactions for one address.

address must be a valid EVM address (checksum enforced). limit is 1-50, default 20. Read on-chain and cached 60s.

GET/api/market/quotes?symbols=AAPL,NVDA

Realtime quotes for up to 25 symbols.

Returns 503 if no market-data provider is configured. Individual bad tickers are dropped rather than failing the batch.

GET/api/market/candles?symbol=AAPL&interval=1day&outputsize=90

OHLC candles for one symbol.

interval is one of the provider's values (1min…1month), default 1day. outputsize is 1-5000, default 90.

GET/api/dividends?symbol=AAPL

Dividend history for one symbol.

One symbol per request by design - the dividends provider allows 25 calls/day, so a batch endpoint would drain the budget in a single page load. Cached 12h per symbol.

GET/api/news?symbols=AAPL&limit=12

Market and company headlines, optionally filtered by symbol.

symbols is optional; omit it for general market news. Up to 25 symbols, limit 1-50 (default 12). Sentiment is included when the news provider supplies it.

GET/api/chain/stats

Network-wide aggregates: blocks, transactions, addresses, block time.

Read live from the chain and cached 5 minutes for the whole deployment. Also reports how many Stock Tokens the registry knows about. No key, no configuration.

GET/api/calendar?date=2026-07-16&kinds=earnings,economic

Stocks-focused calendar: earnings, macro prints, dividends, splits.

date is YYYY-MM-DD, defaults to today. kinds and symbols are optional filters; macro rows survive a symbol filter because they move the whole book. Never 500s on an upstream problem - it degrades to clearly-flagged placeholder rows and says so in `source` and `degradedReason`.

POST/api/rpc

Read-only JSON-RPC proxy for Robinhood Chain.

The wallet transport talks to this, not to a node vendor, so no RPC credential is ever shipped to the browser. Read methods are allowlisted: this is not an open relay, and eth_sendRawTransaction is rejected. Signing and broadcasting stay in the user's wallet.

POST/api/advisor

Streaming advisor completion, grounded in supplied holdings.

Body: { messages, context?: { holdings } }. Returns text/plain streamed token-by-token. Client system turns are discarded - the system prompt is server-owned. Limits: 40 messages, 8k chars each, 60k total, 100 holdings. Part of the optional intelligence layer.

POST/api/insights

Structured portfolio risk analysis as validated JSON.

Body: { holdings }. Response is schema-validated server-side; a malformed model reply becomes a 502 rather than reaching the client. Part of the optional intelligence layer.

Example - read an address’s tokens and recent activity:

curl "https://vortifai.com/api/chain?address=0x0000000000000000000000000000000000000000&limit=10"

Rate limits worth knowing

  • The chain explorer is 3 requests per minute, keyless, per IP. This is the tightest limit in the stack and it is why /api/chain batches its two calls and caches both for 60s. Do not add an uncached call to it.
  • The dividends provider is 25 requests per day. Not per minute. One careless loop exhausts the day.
  • The chain explorer’s per-instance API is deprecating. Their docs carry a shelf-life notice. The successor is the Pro API, but chain 4663 is not yet on its published supported-chains list - verify before migrating.
  • Etherscan V2 does not list Robinhood Chain. If you are looking for an explorer API.

Next

Read Security for the custody and key model, and the risk disclosures for what tokenized equities do and do not guarantee - particularly around shareholder rights, which are not a formality on this asset class.