Introduction
Robinhood Chain hosts tokenized real-world assets (RWAs) — equities, ETFs, ETH and other supported tokens — that trade 24/7 but sit idle while simply held. StockYields is a liquid staking protocol that puts those assets to work.
When you stake a supported asset you get:
- A liquid receipt (
syToken) — e.g.syTESLA. Minted 1:1 against your deposit, it represents your staking position and stays transferable and composable across DeFi. - Yield in the same asset — stake Tesla, earn Tesla. Rewards accrue continuously at the pool's target APR and are claimable any time. $SYLD is the separate governance token, not a staking reward.
How it works
Stake collateral
Approve and deposit a supported asset (Tesla at launch) into its pool via stake().
Hold a liquid receipt
The pool is an ERC-20; it mints your syTESLA 1:1. Transfer it, use it as
collateral — rewards always follow the current holder.
Earn & claim yield
Yield accrues in the staked asset (Tesla) every second. Call getReward() to claim,
or exit() to withdraw your principal and rewards in one transaction.
Because the receipt token itself is the pool, every mint, burn and transfer runs through an
accounting hook that checkpoints rewards for both sides. This means even if a syTESLA
receipt changes hands, the reward stream is redirected to its new owner — it can't be double-claimed
or gamed.
Reward model
StockYields uses the battle-tested Synthetix StakingRewards accumulator pattern —
but the reward asset is the same asset that is staked (stake Tesla, earn Tesla). The protocol
treasury funds a pool by transferring the asset in and calling notifyRewardAmount(amount).
That amount streams linearly to stakers over a reward period (rewardsDuration, default
7 days), split by each staker's share of the pool. The target rate is ~9% APR.
| Term | Meaning |
|---|---|
| rewardRate | Asset distributed per second = amount / rewardsDuration. |
| rewardPerToken | Cumulative yield owed per staked token, scaled by 1e18. |
| earned(account) | Yield (in the staked asset) an address can currently claim. |
| periodFinish | Timestamp the current reward stream ends. |
Because the reward asset equals the staking asset, the solvency check in notifyRewardAmount
subtracts staked principal from the pool balance before validating the rate — so principal can never
be paid out as rewards, and emissions stay fully backed.
Contracts
All contracts are Solidity ^0.8.24, built on OpenZeppelin v5 with
ReentrancyGuard and Ownable2Step.
| Contract | Responsibility |
|---|---|
| SYLDToken | Governance token. ERC-20 + Permit, hard-capped at 1,000,000,000 (1B). Not emitted as a staking reward — used for protocol governance and utility; may be issued from an external platform. |
| StockYieldsPool | Core. A single-asset staking pool that is also its own liquid receipt token (e.g.
syTESLA). Stake → 1:1 mint, withdraw → burn, and yield paid in the same
staked asset. |
| PoolFactory | Deploys and indexes a new StockYieldsPool for each asset. Each pool pays yield in the
same asset it stakes (stake X, earn X). |
Deployed addresses
Live on Robinhood Chain mainnet (chainId 4663). Click an address to copy, or open it
in the Blockscout explorer.
0x18f1b4056ea83a993CBB3c36a4da78E889545C95
Explorer ↗
0xc5c89Dc9A1f7b33c5aF2c4a20e12918CC62c100d
Explorer ↗
0xF05e7cD4cb7bfA30798CCF6E8951b33870d6d2C8
Explorer ↗
0x322F0929c4625eD5bAd873c95208D54E1c003b2d
Explorer ↗
notifyRewardAmount. Tesla is the only live market;
additional assets are added by deploying a new pool through PoolFactory.
Network details
Verified from docs.robinhood.com/chain/connecting. Robinhood Chain is a permissionless, Ethereum-compatible Layer-2 built on Arbitrum Orbit, with ETH as the native gas token.
| Property | Mainnet | Testnet |
|---|---|---|
| Network name | Robinhood Chain | Robinhood Chain Testnet |
| Chain ID | 4663 | 46630 |
| Native currency | ETH | ETH |
| Public RPC | rpc.mainnet.chain.robinhood.com | rpc.testnet.chain.robinhood.com |
| Explorer | robinhoodchain.blockscout.com | explorer.testnet.chain.robinhood.com |
An Alchemy RPC endpoint (https://robinhood-mainnet.g.alchemy.com/v2/{API_KEY}) is also
available and recommended for production traffic.
Contract interface
The primary entry points on StockYieldsPool. Staker functions are permissionless; owner
functions manage reward periods.
Staker functions
amount of the underlying asset and mint syTESLA 1:1.
Requires prior approve() on the asset.amount of syTESLA and return the underlying asset.
Accrued TESLA yield stays claimable.account.totalSupply()).Owner functions
Quick start with cast
Security
- Contracts are OpenZeppelin-based with
ReentrancyGuardand two-step ownership (Ownable2Step). - Reward claims follow checks-effects-interactions; balances are zeroed before transfer.
- The receipt's transfer hook checkpoints both parties, so rewards can't be double-claimed via receipt transfers.
- When the reward asset equals the staking asset, the solvency check subtracts staked principal, so rewards can never exceed the funded amount and principal is always withdrawable.
Roadmap
| Phase | Scope |
|---|---|
| v1 | Single-asset (Tesla) staking, Tesla-denominated yield, live on Robinhood Chain. |
| v2 | ERC-4337 gas-sponsored transactions, veSYLD governance, fee sharing, Uniswap/Rialto liquidity. |
| v3 | Multi-asset vaults, cross-chain via LayerZero, security audit + production mainnet. |