Connecting

Docs

What Post does, how something sent to a handle becomes an asset, and every address to check yourself.

Chain 4663 Arbitrum L2 on Ethereum

What it is

Post lets anyone send ETH to an X handle, whether or not its owner has a wallet yet. The transfer becomes a claim in the ledger. The owner signs in with one post, which ties the handle to an account id, and claims it as any supported asset on Robinhood Chain: Stock Tokens, commodities, treasury ETFs, ETH, USDG, Pons coins or $Post.

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

How it works

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

  • Send. On Send to a handle your own wallet signs a plain ETH transfer to the Post wallet with the UTF-8 bytes of post:@handle as the calldata. No account needed on the other side. A partner with the Post API key can also call POST /api/v1/claims directly.
  • Check. 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 Post wallet, checks the receipt succeeded, 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.
  • Sign in. One post from the handle proves it is yours, or OAuth 2.0 with PKCE through the X app. 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 anything sent before sign-in is still there.
  • Claim. You pick an asset and a wallet, see the quote, and confirm. The Post 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.

How it fills

Two venues fill a route on chain 4663.

  • Uniswap v3 for Stock Tokens, commodity and RWA funds, WETH and USDG. QuoterV2 is asked 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 coin. 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 off.

Fees

The Post fee is 0.5% of claimed value, taken once when Post pays out value it holds for a handle. It is a single constant, RELAY_FEE_BPS = 50, in api/_route.js.

A wallet-mode swap never touches the Post wallet, so it pays no Post 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.

Sending to a handle costs nothing on the way in. The fee is taken once, at claim, on the value going out. The fee share stays in the Post wallet and is recorded per settlement as fee_eth. RELAY_FEE_SPLIT is the setting that routes that share into $Post; while it is unset the share stays in the Post wallet.

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
Post walletreading /api/statusReceives what is sent and signs what is claimed
$Postissuance pendingToken contract on Robinhood Chain, launched on Pons
Official account@xRelayProtocolThe only account that publishes the contract address

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. Anything held by Post is a ledger claim until it settles on chain with a hash.

Not available to US persons.