Connecting

Docs

What X Relay does, how a claim becomes an asset, and every address to check for yourself.

Chain 4663 Arbitrum L2 on Ethereum

What it is

X Relay connects two things that do not usually meet: an X identity and an onchain asset. A payout, a tip or a partner payment addressed to a handle becomes a claim in the ledger. Sign in with X resolves that handle to an account id, and the claim routes into a token on Robinhood Chain.

Robinhood Chain is an Arbitrum L2 settling to Ethereum. Chain id 4663, ETH is the gas token, Chainlink feeds publish prices onchain, and stock tokens are ERC-20 contracts with 18 decimals issued by Robinhood Assets (Jersey) Limited with a uiMultiplier for corporate actions.

How a claim works

Four steps, and each one leaves something you can check.

  • Deposit. On Send to a handle your own wallet signs a plain ETH transfer to the relay wallet with the UTF-8 bytes of xrelay:@handle as the calldata. No partner and no API key. A partner with the relay API key can also call POST /api/v1/claims directly.
  • Verify. The page posts only the transaction hash to POST /api/v1/deposits. The server reads the transaction and its receipt from chain 4663, checks the recipient is the relay wallet, checks the receipt status is a success, decodes the calldata into a handle against /^[a-z0-9_]{1,15}$/, and prices the ETH at the Chainlink ETH/USD round for that block. Nothing in the request body is trusted except the hash, and the same hash posted twice returns the first claim.
  • Claim. Sign in with X resolves the handle to an account id through OAuth 2.0 with PKCE. Only the account id, handle, name and avatar are kept, in a signed httpOnly cookie. The claims page reads the ledger under both the account id and the handle, so a deposit made before sign-in still lands.
  • Settle. You pick a destination asset and a destination wallet, read the quote, and confirm. The relay wallet signs the settlement, waits for one confirmation and writes the transaction hash back onto the claim. Per-transaction and per-day caps are enforced inside the send path, not in the browser, and both are published by /api/status.

Routing

Two venues fill a route on chain 4663.

  • Uniswap v3 for stock tokens, commodity and RWA funds, WETH and USDG. QuoterV2 is called across the 0.01, 0.05, 0.3 and 1 percent tiers and the tier with the most output wins. SwapRouter02 fills it with exactInputSingle, and ETH is paid as value so the router wraps it.
  • The Pons V2 curve for a Pons launch. The buy is simulated with eth_call first, then signed against the curve with the recipient set to your wallet.

Every minimum received is floored at 98 percent of the quote. An asset with no Chainlink feed is listed and marked, never given a number. A pair with no pool says so and the review button stays closed.

Fees

The relay fee is 0.5% of routed claim value, taken once when X Relay routes value it holds on behalf of an identity. It is a single constant, RELAY_FEE_BPS = 50, in api/_route.js.

A wallet-mode swap never touches the relay, so it pays no relay fee. It pays the pool fee of the tier it fills on and the gas of chain 4663, both shown in the quote before anything is signed.

A deposit to a handle pays no relay fee on the way in. The fee is taken once, at settlement, on the value routed out. The fee share stays in the relay wallet and is recorded per settlement as fee_eth. RELAY_FEE_SPLIT is the setting that will route that share once $XRELAY exists; until the token is issued there is nothing to route it into and the setting stays unused.

Verify on chain

ContractAddressRole
WETH0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73Wrapped ETH, the pool currency
USDG0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168Dollar referenced token, 6 decimals
Pons V2 factory0x7ed598bcef8bd9edd8c97a195c6d13f40801ec7eEmits every launch and its curve
Uniswap v3 factory0x1f7d7550b1b028f7571e69a784071f0205fd2efaResolves a pool for a pair and tier
QuoterV20x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7Quotes exact input single hops
SwapRouter020xcaf681a66d020601342297493863e78c959e5cb2Fills the swap to your wallet
UniswapInterfaceMulticall0x282a3c4d320cc7f0d5eaf56b8029e4b88338f0a3Batches the balance and feed reads
Permit20x000000000022D473030F116dDEE9F6B43aC78BA3Approval transfer helper
UniversalRouter0x8876789976decbfcbbbe364623c63652db8c0904Router for combined actions
Relay walletreading /api/statusReceives deposits and signs settlements
$XRELAYissuance pendingToken contract, published at issuance

Risk

  • Stock tokens are tokenized debt securities issued by Robinhood Assets (Jersey) Limited. They track an underlying, they are not the underlying share.
  • A claim is a ledger entry until it settles on chain. Until a transaction hash exists, nothing has moved.
  • Prices come from Chainlink feeds with a heartbeat. A feed that has not updated recently carries its own timestamp, shown next to the price.
  • A Pons curve price moves with its reserves. A small curve moves a lot on a small buy.
  • Not available to US persons.

Stock tokens are tokenized debt securities issued by Robinhood Assets (Jersey) Limited; balances routed through X Relay are ledger claims until settled on chain.

Not available to US persons.