Skip to content

Assets and conversions

Supported assets

  • Stock Tokens and ETF tokens — every active token in Robinhood's Stock Token registry (GET https://api.robinhood.com/rhj/assets) with a deployment on Robinhood Chain. The list is fetched live, so it grows as the registry does.
  • ETH — native on Robinhood Chain.

Stock Tokens are ERC-20s (18 decimals) issued by Robinhood Assets (Jersey) Limited. They track an underlying share, adjusted for corporate actions through an onchain multiplier (uiMultiplier). They do not carry shareholder rights, are not offered to U.S. persons, and may not be available in every region. The conversion flow asks people to confirm eligibility before their first Stock Token conversion.

Prices

Asset Source Shown as
Stock Tokens Robinhood Stock Token API /rhj/prices Mid of the live token bid and ask (multiplier-adjusted), plus day high/low and halt status
ETH Coinbase Exchange public 24 h stats Last trade and change against the 24 h open

Robinhood's API sends no CORS headers, so the website fetches it server-side and caches for 15 seconds. If a source is down, prices show "—" and a notice; nothing is filled in.

Charts

Charts are TradingView widgets, using TradingView's own market data for the underlying instrument. Idlecash only maps a ticker to an exchange-qualified TradingView symbol when the primary listing is known (tradingViewSymbolFor in shared/src/assets.ts). Unmapped assets show "Chart unavailable" rather than risk showing the wrong instrument.

Allocation

An allocation is up to 6 entries whose weights (in basis points) sum to exactly 10,000. It's validated by validateAllocation.

  • Default: saved in the browser's local storage, keyed by wallet address.
  • Optional onchain copy: if NEXT_PUBLIC_ALLOCATION_REGISTRY_ADDRESS is set, people can also save their split to contracts/src/AllocationRegistry.sol, so the Idlecash service can read it from the chain. ETH is stored under the 0xEeee…EEeE native-asset sentinel.

Conversions

Conversions start from USDG or ETH in the person's wallet. Routes come from LI.FI, which aggregates the onchain venues that list these tokens on Robinhood Chain. The website proxies quotes through /api/route-quote, which:

  • only allows USDG or ETH as the source and a registry asset as the destination;
  • pins both chains to Robinhood Chain (4663) and disables bridges;
  • rejects any quote whose transaction targets another chain, or whose contract differs from its approval address.

Before sending, the browser checks again that the transaction's chain, contract, value and amount match what the person reviewed.

Transaction states

Each step moves through Review → Sign → Pending → Confirming → Confirmed, or Failed:

  • Sign — waiting for the wallet.
  • Pending — broadcast; waiting to be included in a block.
  • Confirming — included; waiting for one more block.
  • Confirmed — shown only after the receipt reports success.

Handled failures include wallet rejection, insufficient balance, insufficient ETH for fees, wrong network, network and RPC errors, reverted transactions, missing routes, halted trading and expired quotes. Quotes older than 45 seconds are refreshed before signing; if the refreshed minimum output is more than 1% worse, the flow stops and asks the person to review again.

Approvals

For USDG, the website approves exactly the amount being converted — never an unlimited allowance — and only if the current allowance is too low.