Skip to content

Connect a wallet

PoraPerps never asks for a seed phrase or private key. Your wallet signs every transaction itself; the app only requests signatures you can read before approving. Network: Robinhood Chain (chain 4663).

Sources

Every number has a name behind it.

The integration registry below is the whole list of external dependencies, what was verified about each and when, and where each one stops. The live section re-checks the parts that can be checked from the server.

Live status

Network RPC

Checking

Venue API

Checking

Spot indexers

DexScreenerGeckoTerminal

Execution & assistant

Order signing onAsk Pora not configured

Checked … by the server. Private submission: Lighter (RH) has none; PoraPerps never implies otherwise.

Integration registry

  • network

    Robinhood Chain

    The one network this build targets. Every address shown is on chain 4663.

    connectedchain 4663 · mainnetdocs ↗
    Verified
    2026-10-17 (UTC) — Official docs page read (DNS-pinned fetch); eth_chainId answered 0x1237 (4663) on the public RPC; explorer host answered JSON.
    Required configuration
    optional RPC_UPSTREAM_URL (Alchemy recommended by the docs); defaults to the public RPC with publicnode / dRPC fallbacks · UPSTREAM_DOH=1 on development machines whose DNS hijacks robinhood.com
    Reads
    JSON-RPC (eth_call, balances, receipts, logs) through the same-origin relay /api/rpc · chain id, gas, block time
    Writes
    Transactions are signed and broadcast by the visitor's wallet; the relay never carries them
    Rate limits
    Public RPC is rate limited and "not recommended for production" (docs); batches above 10 calls are truncated silently.
    Current limitations
    Arbitrum Orbit L2: ETH gas, ~0.1 s blocks, soft confirmation before L1 finality · public node is not an archive node · testnet (46630) has no venue or Uniswap deployments

    Verified contracts

    • USDG (collateral, 6 decimals)0x5fc536…F1d168venue layer1BasicInfo + assetDetails list it as the USDG asset; ERC-20 decimals() = 6 read on-chain
    • WETH0x0Bd7D3…AcAD73Uniswap deployments.json + GeckoTerminal pools name it WETH
  • venue

    Lighter · Robinhood Chain domain

    The only perpetual-trading venue PoraPerps executes on. Signing happens in the browser with the official lighter-go WASM signer (pinned, hash-checked).

    connectedchain 4663 · mainnetdocs ↗
    Verified
    2026-10-17 (UTC) — GET /info echoed the documented contract; /api/v1/orderBookDetails listed 58 perpetual markets; /api/v1/assetDetails listed USDG as asset 3 with margin enabled; /api/v1/funding-rates and /api/v1/withdrawalDelay answered.
    Required configuration
    NEXT_PUBLIC_EXECUTION=live to enable order signing · NEXT_PUBLIC_VENUE_API_KEY_INDEX (default 11)
    Reads
    markets & contract specs (decimals, minimums, margin fractions, fees) · mark / index / last price · funding rate (hourly settlement) and history · open interest · order book + public trades (REST and WebSocket) · candles · account collateral & positions by L1 address (public) · orders, fills, funding payments (auth token) · venue transaction status by hash
    Writes
    USDG deposit (wallet tx: approve + deposit) · register / revoke trading key (wallet signature + L2 ChangePubKey) · market, limit, stop-loss, take-profit orders (L2 CreateOrder, venue-managed triggers) · cancel / cancel all · update leverage & margin mode · L2 withdraw to the own L1 address
    Rate limits
    Undocumented; the server caches every public read (stale-while-revalidate) and the browser uses the venue WebSocket for the book.
    Current limitations
    Not Lighter Core: separate contracts, sequencer and liquidity · orders rest in a public book; no private submission exists · implementation contract unverified on Sourcify · fast-withdraw fee mechanics undocumented; PoraPerps uses the secure path · funding-rates quotes an 8-hour-equivalent; the venue settles hourly (value ÷ 8)

    Verified contracts

    • Lighter contract (deposits, L1 withdrawals)0x94bAB9…AFfF9ddocs.robinhood.com/chain/lighter-domains + GET https://api.rh.lighter.xyz/info; proxy, implementation not source-verified
  • spot

    KyberSwap Aggregator

    Spot swaps on the token pages.

    connectedchain 4663 · mainnetdocs ↗
    Verified
    2026-10-17 (UTC) — routes and route/build answered for USDG → CASHCAT on chain 4663 (route via a Tessera pool); the returned router equals the pinned MetaAggregationRouterV2, a Sourcify exact match whose ABI PoraPerps uses to decode and check every built transaction before signing.
    Required configuration
    none (x-client-id header is set server-side)
    Reads
    spot route quotes for USDG ↔ token (amount out, USD values, gas, route pools)
    Writes
    spot swap from the connected wallet: exact-amount approval to the router, decoded + checked calldata, simulation, then one signed transaction; recipient is always the sender
    Rate limits
    Key-free, undocumented burst limit; PoraPerps budgets 60 requests a minute and quotes expire after 45 s.
    Current limitations
    USDG is the only quote asset in the ticket (no native ETH routing) · routes are whatever the aggregator returns and are named in the review · a spot purchase is never shown as a perpetual position · no fee is charged by PoraPerps; pool fees are inside the quote

    Verified contracts

    • MetaAggregationRouterV2 (spender and target)0x6131B5…6337b5Sourcify exact_match; enforces returnAmount >= minReturnAmount
  • market-data

    GeckoTerminal API

    Live price / liquidity / volume / candles / trades for verified spot tokens.

    connectedchain 4663 · mainnetdocs ↗
    Verified
    2026-10-17 (UTC) — networks/robinhood/pools and tokens/multi answered for the curated addresses; pool OHLCV and trades endpoints used by the token pages.
    Required configuration
    none
    Reads
    token price, FDV, reserve (liquidity) per pool · pool OHLCV (real observations only) · recent pool trades · market cap when CoinGecko tracks the token
    Writes
    none
    Rate limits
    ~30 requests/min key-free; the server budgets ≤4 origin requests per refresh and keeps the previous read on a refusal.
    Current limitations
    Robinhood Chain is full of copycat tokens with vanity-matched addresses and faked volume; PoraPerps only queries the exact curated addresses · market_cap_usd is null for tokens CoinGecko does not track
  • market-data

    DexScreener API

    Second market-data source; identity cross-check at curation.

    connectedchain 4663 · mainnetdocs ↗
    Verified
    2026-10-17 (UTC) — tokens/v1/robinhood/{addresses} answered with pairs, liquidity, market cap, FDV, 24 h volume and project links for the curated addresses.
    Required configuration
    none
    Reads
    pairs per token: price, liquidity, volume, txns, market cap, FDV, pool, links, logo
    Writes
    none
    Rate limits
    300 requests/min for token endpoints (docs).
    Current limitations
    marketCap equals FDV when DexScreener has no circulating-supply figure; PoraPerps labels that case
  • market-data

    CoinGecko API (curation)

    Source of the mascot registry (data/mascots.registry.json).

    read-onlychain 4663 · mainnetdocs ↗
    Verified
    2026-10-17 (UTC) — asset_platforms lists robinhood (chain_identifier 4663); the category robinhood-chain-meme answered 390 coins; coin detail pages gave links, images and platforms.
    Required configuration
    none
    Reads
    circulating market cap, circulating supply, FDV, categories, official links, logo
    Writes
    none
    Rate limits
    ~30 requests/min key-free; blocked (403) for cloud IPs, so it runs only in scripts/curate-mascots.mjs on a workstation.
    Current limitations
    not called at runtime · circulating supply is as tracked by the aggregator, not audited by PoraPerps
  • indexer

    Blockscout (robinhoodchain.blockscout.com)

    Wallet history, token balances and holder counts.

    connectedchain 4663 · mainnetdocs ↗
    Verified
    2026-10-17 (UTC) — /api/v2/tokens/{address} answered for PONS with holders_count and circulating_market_cap; address transactions and token balances endpoints are the ones documented by the official explorer.
    Required configuration
    none
    Reads
    address transactions (paged, newest first) · ERC-20 balances of an address · token holders count and metadata · transaction detail
    Writes
    none
    Rate limits
    Cloudflare bot protection: answers an honest non-browser User-Agent; cold addresses take 5–45 s and sometimes 502.
    Current limitations
    history coverage is the indexer's, paged 50 at a time; PoraPerps shows the cursor and never claims completeness · lower-cased addresses can 500; EIP-55 is always sent
  • issuer

    Robinhood Stock Tokens (issuer asset list)

    The "Tokenized assets" view on /markets, search results, and the issuer card on token pages.

    read-onlychain 4663 · mainnetdocs ↗
    Verified
    2026-10-17 (UTC) — GET https://api.robinhood.com/rhj/assets answered 195 assets, every one deployed on chain 4663 (status ASSET_STATUS_ACTIVE, 18 decimals, ISIN, per-session trading flags, display multiplier, logo on cdn.robinhood.com); the CRM and NVDA token contracts both hold the issuer beacon 0xe10b…1b00 in their beacon slot (eth_getStorageAt); 35 of the 195 have a Chainlink feed.
    Required configuration
    none; UPSTREAM_DOH=1 on development machines whose DNS hijacks robinhood.com
    Reads
    issuer asset list: symbol, name, contract, decimals, status, display multiplier, session flags, logo, ISIN (5 min cache; a dated snapshot is served and labelled only when the API is unreachable) · Chainlink reference price per token where a feed exists (see Chainlink)
    Writes
    none
    Rate limits
    Undocumented. One list request per five minutes per server; logos go through the same-origin image proxy.
    Current limitations
    VIEW ONLY: no tokenized-asset spot venue is verified, so nothing in this list is tradable in PoraPerps · 160 of 195 tokens have no Chainlink feed and show no price · the issuer can pause, block or burn tokens (contract source); PoraPerps shows the flags, it does not interpret them · copycat tokens reuse these names and symbols on the same chain: only addresses from the issuer list are shown

    Verified contracts

    • Issuer AccessControlsRegistry / beacon (shared by every official Stock Token)0xe10b6f…151b00beacon slot of CRM 0xd95B…6D44 and NVDA 0xd060…9EEC read on-chain 2026-10-17; Sourcify source of the implementation read 2026-09-17 (ERC20ScaledUIUpgradeable: balances are raw units, the multiplier is display-only)
  • spot

    Uniswap deployments (reference)

    Names the DEX venues behind the spot pools.

    reference-onlychain 4663 · mainnetdocs ↗
    Verified
    2026-10-17 (UTC) — deployments.json returned 49 active records for chainId 4663 (V2, V3 incl. QuoterV2, V4, Universal Router, Permit2).
    Required configuration
    none
    Reads
    pool identity for the venues named by GeckoTerminal / DexScreener
    Writes
    none
    Rate limits
    n/a
    Current limitations
    no swaps are executed in this build

    Verified contracts

  • ai

    Claude (Anthropic API)

    Ask Pora.

    not-configureddocs ↗
    Verified
    2026-10-17 (UTC) — SDK wired server-side with a tool loop; runs only when ANTHROPIC_API_KEY is set on the server.
    Required configuration
    ANTHROPIC_API_KEY (server only) · optional ANTHROPIC_MODEL
    Reads
    application tools only: markets, funding, meme directory, wallet lookups, liquidation explanation, order draft
    Writes
    none — it may prepare an order draft that the visitor reviews and signs in the normal ticket
    Rate limits
    Per-IP limit on /api/ask; bounded tool calls per answer.
    Current limitations
    without a key the desk shows "Not configured" and the deterministic quick queries still run · retrieved token metadata is untrusted content
  • wallet

    Injected wallets (EIP-1193 / EIP-6963)

    Signing.

    connectedchain 4663 · mainnetdocs ↗
    Verified
    2026-10-17 (UTC) — wagmi 2 injected connector; wrong-network detection uses the wallet's own chain id; connecting never triggers an approval or trade.
    Required configuration
    none
    Reads
    accounts, chain id
    Writes
    approve (bounded to the amount), deposit, personal_sign for the trading key
    Rate limits
    n/a
    Current limitations
    no WalletConnect in this build · no seed phrases or private keys are ever requested

Mascot methodology

  1. Candidates come from the CoinGecko category "robinhood-chain-meme" with a contract on the robinhood platform (chain id 4663).
  2. Circulating market cap is CoinGecko's tracked figure; FDV is recorded separately and never substitutes for it.
  3. Price, liquidity and the pool come from DexScreener for the exact contract address; a disagreement above 15% between the two sources disqualifies the token.
  4. Name, symbol, decimals and total supply are read from the contract through a public RPC; circulating supply must not exceed the on-chain total.
  5. A token needs real activity: at least US$10,000 of DexScreener 24 h volume and 20 trades.
  6. Multi-chain (bridged) tokens are excluded from the desks because their market cap is not Robinhood-native; they stay in the directory.
  7. Explicit names are excluded from the desks by a brand-safety filter and stay in the directory.
  8. Mascot placement is fixed at curation; the app refreshes the displayed figures live and flags a token that no longer meets the threshold.
  9. Artwork: the project logo as distributed by the aggregator, shown at icon size as a market identifier. No derivative branded artwork is generated; no partnership is claimed. The 3D attendants in the hall are original folded-paper figures, identical for every desk; the token badge on the desk is the only brand element.
  10. A mascot is never described as an autonomous trader: no such functionality exists.

Current curation

Curated (UTC)
2026-10-17 07:10
Chain
4663
Min market cap
$1,000,000
Min liquidity
$100,000
Max price disagreement
15%
Examined / eligible / mascots
24 / 18 / 8

Full records with every source and timestamp: data/mascots.registry.json in the repository, rendered on the Meme Tokens page.

Network facts

Network
Robinhood Chain (chain id 4663)
Native gas asset
ETH
Public RPC
https://rpc.mainnet.chain.robinhood.com
Explorer
https://robinhoodchain.blockscout.com
Collateral
USDG 0x5fc536…F1d168
Venue contract
0x94bAB9…AFfF9d

Source: docs.robinhood.com/chain/connecting (read 2026-10-17 UTC), venue layer1BasicInfo and /info. The testnet (46630) has no venue or Uniswap deployments, so PoraPerps ships a mainnet build only.