PARACHUTE docs
v1.0.0
Live demo Get help
● Set up · Off by default

Stock module
tokenized stocks, behind two switches.

The optional module lets traders land exits in tokenized stocks on Robinhood Chain. It is off by default, needs two switches, and puts a self-declaration in front of every stock route. Turning it on is your decision and needs your own legal review.

Off by defaultSelf-declaration, not KYCLegal advice first

01What the stock tokens are

Robinhood stock tokens are debt securities issued under Regulation S by Robinhood Assets (Jersey) Limited. They are not available to U.S. Persons or to residents of the US, Canada, the United Kingdom, Switzerland, the United Arab Emirates or sanctioned countries. The issuer can pause, blocklist or burn tokens (FACTS.md §3, §7).

The built-in restricted list (STOCK_RESTRICTED_COUNTRIES in src/config/contracts.ts) is: US, CA, GB, CH, AE, CU, BY, IR, KP, RU, SY, UA, SS, SD, MM, VE.

02What works without the module

Even with the module off, traders can see stock prices read-only and the stock lens: "Backed by …" for memes paired with a stock token, and values shown in USD, ETH or shares of a stock (display only). No stock route is offered.

03Turning it on

Before you switch it on

Get legal advice for every market you serve. Whether offering these tokens through your interface is allowed where you and your users are is your responsibility. Open legal questions are listed as unverified in FACTS.md §7.

  1. Build with the moduleIn .env.local: VITE_STOCKS_ENABLED=true, then npm run build. Without this, the module is not compiled in, whatever the console says.
  2. Switch it on in the consoleConsole → Trading safety → Stock-token module. On a static-only site the build flag alone decides.
  3. Optional: block more countriesConsole → Access → Blocked countries adds to the built-in list for the self-declaration.

04The self-declaration

Before any stock route, each trader answers a self-declaration: their country of residence, that they are not a U.S. Person, and that they read the issuer terms. A restricted country or a missing answer blocks stock routes with the reason in plain words.

  • It is stored only in that browser's localStorage and never sent anywhere.
  • It is not KYC, verifies nothing, and does not make you compliant. The UI says so and never calls it KYC.

05The pre-swap guard

Before every stock trade the dApp makes nine live reads: whether the token is paused, whether its oracle is paused, and isBlocked for the trader, the Universal Router, the PoolManager and Permit2. A failed or unreadable check blocks the trade (fail closed). Live state is never taken from the build-time snapshot.

06Prices and market hours

Stock prices come from Chainlink stock feeds, which stop outside market hours. The UI shows the "as of" time and a market-closed state. A feed older than 1 hour is shown as "last market price"; without a feed the pool quote is used; with neither, "no on-chain price". A stale price is never shown as live. In the current snapshot 35 of the 195 stocks have a Chainlink USD feed.

07The stock list

The Robinhood registry API blocks browser requests (CORS), so the list is a build-time snapshot in src/data/stocks.json: 195 stocks, block 70,411,151, taken 2026-09-23. To refresh it:

npm run snapshot:stocks   # rewrites src/data/stocks.json, verifies each token on-chain
npm run build

The pool list used for stock routes is src/data/stock-pools.json (npm run snapshot:pools). Both scripts only read. We did not re-run them for this documentation (unverified here).

08Stock routes and your fee

With the module and a fee both on, a route that starts or ends in a stock token takes the fee from its ETH or USDG leg; it is never paid in a stock token.

Fee legality on stock trades: unverified

Whether an interface fee may be charged on stock-token trades is not settled. It has not been verified for this item. Get legal advice before you turn on the stock module and a fee together. The documentation does not promise or suggest income from stock trades.

09No Robinhood branding

PARACHUTE uses no Robinhood logo, colours or brand marks; stock avatars are generated. "Robinhood Chain" appears only as plain text. Keep it that way and do not imply affiliation with Robinhood.