StockStream Protocol · Technical Whitepaper

The DividendPrimitive.

StockStream is dividend infrastructure for Robinhood Chain. A protocol that captures swap fees atomically via Uniswap V4 hooks and automatically purchases tokenized stock securities, distributing them proportionally to every eligible $STREAM holder every 15 minutes. No claiming. No staking. Stocks just arrive.

Version
1.0, Draft
Date
September 2026
Network
Mainnet (4663) · Testnet (46630)
Status
Testnet Verified
Solidity
0.8.26
00

Abstract

StockStream is a dividend protocol built natively on Uniswap V4 hooks on Robinhood Chain. It captures a 1% fee on every swap in the ETH/$STREAM pool atomically, inside the same transaction as the swap itself, and uses accumulated ETH to purchase tokenized stock securities (NVDA, AAPL, GOOGL, META) on-chain via Uniswap V4. These tokens are then distributed proportionally to every $STREAM holder every 15 minutes.

The protocol comprises four core contracts, StreamStockToken, StreamStockFeeHook, StockTreasury and StockDistributor, and a fifth permissionless deployment contract, StreamFactory, which enables any token on Robinhood Chain to deploy an identical dividend system in a single transaction.

The fee-capture hook is immutable and has no administrative controls: it cannot be paused, modified or redirected after deployment. The hook fires inside every swap in the ETH/$STREAM pool with no external agent required for fee capture. The distribution layer is keeper-managed, meaning distributions pause if the keeper goes offline but fees continue accumulating and are distributed when the keeper resumes.

Key Properties

Atomic fee capture, hook fires inside the swap transaction, zero external agents.
On-chain stock purchase, ETH buys tokenized stock securities via Uniswap V4.
Automatic distribution, stocks pushed to holder wallets every 15 minutes.
Permissionless infrastructure, StreamFactory deploys full dividend system for any token in 1 tx.
Compound yield, received stock tokens earn their own dividends via uiMultiplier().

01

Background

Robinhood Chain

Robinhood Chain launched on July 1, 2026 as an Ethereum Layer 2 network built on the Arbitrum stack and operated by Robinhood Markets. By September 2026 it had become one of the highest-volume DeFi networks globally, accounting for over 56% of Uniswap's total trading volume. Daily DEX volume regularly exceeds $500 million, with single-day peaks above $2 billion.

The chain's defining characteristic is the native presence of tokenized stock securities, over 190 tokenized stocks and ETFs representing companies including NVIDIA, Apple, Alphabet and Meta, trading on-chain 24 hours a day, 7 days a week via Uniswap V4 pools. At the time of writing, Robinhood Chain provides a particularly direct environment for composing tokenized equities with DeFi.

Tokenized Stock Securities

⚠ Important Disclosure

Robinhood stock tokens are tokenized debt securities issued by Robinhood Assets (Jersey) Limited, a private limited company incorporated in Jersey that is not subject to prudential supervision. Each token is backed one-to-one by the underlying share held by a US custody partner, but token holders have economic exposure only, no legal or beneficial ownership of the share, no voting rights, no direct relationship with the issuing company. Corporate actions, including dividends and stock splits, may be reflected through the issuer's on-chain multiplier, which changes the shares-per-token relationship while raw token balances remain unchanged. This is a balance-accounting mechanism maintained by the issuer, not a direct dividend payment by StockStream. These tokens are not available to US persons, UK residents, Canadians or Swiss residents. Holders bear both equity price risk and issuer credit risk.

Within these constraints, the tokens provide real economic exposure to equity prices and dividend flows. The uiMultiplier mechanism automatically adjusts token balances when the underlying company pays a dividend or undergoes a stock split, making the tokens responsive to real corporate actions. This mechanism is foundational to StockStream's "dividend on dividend" property described in Section 08.

Uniswap V4 Hooks

Uniswap V4 introduced a hook system allowing custom logic to execute inside swap transactions at specific lifecycle points. Hooks are smart contracts deployed at addresses whose final byte encodes a bitmask of permission flags. The pool manager reads the address to determine which callbacks the hook implements, eliminating a separate registry lookup.

This address encoding requires mining a CREATE2 salt until the computed address ends in the correct byte value. For StockStream, the required flags sum to 204 (0xCC), encoding four active permissions: beforeSwap, afterSwap, beforeSwapReturnDelta and afterSwapReturnDelta.

The critical implication is that fee capture is atomic: the hook fires as part of the swap transaction itself. Because fee capture executes atomically within the swap transaction, there is no separate fee-routing transaction or keeper dependency. If the hook execution reverts, the swap reverts atomically. This is a fundamental security and trust-minimization advantage over off-chain fee routing approaches.

02

The Problem

Robinhood Chain generates hundreds of millions of dollars in swap fees daily. Absent protocol fees or hook-based fee mechanisms, swap fees accrue to liquidity providers. Token holders, the primary participants driving price discovery and creating the network effects that attract liquidity, receive no share of this value.

Simultaneously, over 190 tokenized stock securities trade on-chain 24/7. These assets represent genuine economic value, dividend streams, price appreciation, corporate action exposure, but remain entirely disconnected from the broader token ecosystem. No mechanism exists to route swap-generated value into equity exposure for token holders.

$500M+
Daily DEX Volume
190+
Stock Tokens
0
Fee→Stock Protocols
24/7
Markets Open

Prior art in dividend tokens, notably $INDEX on Robinhood Chain, demonstrated that the concept is viable and market demand exists ($INDEX achieved approximately $70M market capitalization). However, existing implementations are single-token systems with no permissionless infrastructure layer. StockStream addresses both the product gap ($STREAM as the flagship dividend token) and the infrastructure gap (StreamFactory as the permissionless deployment platform).

03

Architecture

The StockStream protocol operates as a linear pipeline of five smart contracts. Each contract has a single well-defined responsibility and communicates with adjacent contracts through explicit, auditable interfaces. Following deployment, administrative ownership of the treasury and distributor is transferred to the integration owner. The hook itself has no owner and no administrative controls.

🔄
Swap
→
🪝
FeeHook
→
🏦
Treasury
→
📈
Stocks
→
🎯
Distributor
→
👛
Holders
ContractResponsibilityOwnableUpgradeable
StreamStockTokenERC20 with on-chain holder trackingYesNo
StreamStockFeeHookV4 hook, atomic 1% fee captureNoNo
StockTreasuryETH accumulation and stock purchasesYesNo
StockDistributorHolder snapshot and stock distributionYesNo
StreamFactoryPermissionless dividend system deploymentYesNo
04

V4 Hook Engine

StreamStockFeeHook is the atomic core of the protocol. It is an immutable Uniswap V4 hook that intercepts swaps on the ETH/$STREAM pool, captures 1% of ETH involved in the swap, and forwards it to StockTreasury, within the same transaction as the swap itself.

Fee Capture Mathematics

The hook handles two directions of swap differently. Let V denote the ETH value involved in a swap (either as exact input or as output). The fee F is computed as:

Fee Capture Formula
Fee amount:
F = V × (FEE_BPS / BPS)
= V × (100 / 10,000) = V × 0.01
Net to pool:
V_net = V − F
= V × 0.99
To treasury:
F → StockTreasury
via poolManager.take()
Where: V = ETH value of swap · FEE_BPS = 100 · BPS = 10,000

For ETH-specified swaps (user inputs exact ETH), the fee is deducted in beforeSwap using BeforeSwapDelta, reducing the ETH entering the pool. For token-specified swaps where ETH is the output, the fee is deducted in afterSwap using afterSwapReturnDelta, reducing the ETH returned to the user.

Hook Address Encoding

Uniswap V4 determines hook permissions by reading the last 14 bits of the hook address. Each bit corresponds to a permission flag. The required flags for StockStream are:

Hook Permission Bitmask
beforeSwap:
bit 7 = 128
afterSwap:
bit 6 = 64
beforeSwapReturnDelta:
bit 3 = 8
afterSwapReturnDelta:
bit 2 = 4
Total flags:
128 + 64 + 8 + 4 = 204 = 0xCC
← required last byte

The hook address must end in 0xCC. This is achieved by mining a CREATE2 salt, iterating nonce values until the predicted address satisfies the constraint. The salt is deterministic for a given deployer address, constructor arguments and bytecode hash.

CREATE2 Address Formula
address = keccak256(0xFF ‖ deployer ‖ salt ‖ keccak256(bytecode))[12:]
Where: deployer = Create2Deployer (0x4e59b...956C) for $STREAM · deployer = StreamFactory address for integrations · salt = mined nonce satisfying address[last byte] = 0xCC
// Fee capture, ETH exact input direction (beforeSwap) uint256 amt = uint256(-params.amountSpecified); uint256 fee = (amt * FEE_BPS) / BPS; // 1% poolManager.take(key.currency0, treasury, fee); return (selector, toBeforeSwapDelta(fee.toInt128(), 0), 0);
Immutability Guarantee

StreamStockFeeHook has no owner, no admin functions and no upgrade path. The treasury address is set at construction and cannot be changed. Once deployed, the hook runs permanently as long as Robinhood Chain operates. This is an intentional design choice, the fee-capture primitive must be trustless and tamper-proof.

05

Stock Treasury

StockTreasury accumulates native ETH from the fee hook and executes stock purchases on behalf of the protocol. It implements IUnlockCallback, the Uniswap V4 interface required to execute swaps programmatically from within a smart contract.

Stock Purchase Mathematics

When buyStocks() is called, the treasury divides its ETH balance equally across all registered stock tokens (after deducting any protocol fee). For a treasury balance B, protocol fee rate f_p and n registered stocks:

Stock Purchase Allocation
Protocol fee:
F_p = B × f_p
0.5% for StreamFactory integrations, 0 for $STREAM
Available ETH:
B_net = B − F_p
Per stock:
E_i = B_net / n
equal allocation across all registered stocks
Slippage check:
out_i ≥ minOuts[i]
revert if any stock purchase exceeds slippage
Where: B = treasury ETH balance · f_p = protocol fee rate · n = number of registered stocks · minOuts[i] = caller-provided slippage floor for stock i

Protocol Fee

For StreamFactory integrations, a protocol fee is deducted from treasury ETH before stock purchases. The fee is configurable within a 0–10% range (in basis points) and is set by StreamFactory at deployment time via setProtocolFee(). For the $STREAM protocol itself, no protocol fee is taken, 100% of accumulated ETH goes to stock purchases.

Annual Protocol Fee Revenue (StreamFactory)
Fee per cycle:
R_cycle = B_integration × 0.005
Annual fee:
R_factory = Σᵢ (V_i × hook_fee_i × 0.005)
V_i = annual swap volume of integration i
Where: V_i = annual swap volume of integration i · hook_fee_i = hook fee rate of integration i (1–3%) ·
06

Stock Distributor

StockDistributor receives tokenized stock tokens from the treasury and distributes them proportionally to all eligible $STREAM holders. Distribution occurs in three explicit phases to support arbitrarily large holder sets without hitting block gas limits.

Holder Tracking

StreamStockToken maintains an on-chain packed holder set. Every transfer updates the set: addresses crossing above the minimum balance threshold (10,000 $STREAM) are added; addresses dropping below are removed. This eliminates off-chain indexing requirements at distribution time.

Distribution Mathematics

Each eligible holder receives a share of each stock token proportional to their $STREAM balance relative to total eligible supply at snapshot time. For holder h with balance b_h and stock token s with cycle amount A_s:

Pro-Rata Distribution Formula
Eligible supply:
S_e = Σ b_h for all h where b_h ≥ b_min
Holder weight:
w_h = b_h / S_e
Holder allocation:
D_{h,s} = A_s × w_h = A_s × (b_h / S_e)
Verification:
Σ D_{h,s} ≤ A_s
rounding favours protocol (dust remains)
Where: b_h = holder balance at snapshot · b_min = 10,000 × 10¹⁸ (minimum to earn) · A_s = total stock s received this cycle · S_e = total eligible supply

Minimum Balance Rationale

The 10,000 $STREAM minimum balance threshold serves two purposes. First, it prevents gas costs from exceeding distribution value for micro-holders, without a threshold, distributing 1 wei of NVDA to 100,000 addresses would cost more in gas than the tokens are worth. Second, it creates a natural demand floor for $STREAM as holders seeking dividends must maintain the minimum.

Minimum Viable Holder Calculation
Gas per recipient:
G ≈ 30,000 gas
Min meaningful dist.:
D_{h,s} > G × gas_price × ETH_price
At 0.01 gwei, $3k ETH:
D_{h,s} > 30,000 × 0.01×10⁻⁹ × 3,000 ≈ $0.001
The 10,000 $STREAM minimum is intended to ensure distribution amounts meaningfully exceed gas costs at typical network conditions on Robinhood Chain, though the exact profitability threshold depends on $STREAM price and prevailing fee revenue.
07

StreamFactory

StreamFactory is the platform layer of StockStream. It enables any token project on Robinhood Chain to deploy a complete dividend infrastructure system in a single transaction with minimal technical integration required. StreamFactory is the mechanism that transforms StockStream from a single token into a protocol.

Deployment Mechanics

A caller invokes StreamFactory.deploy() with their token address, stock basket and a pre-mined hook salt. The factory atomically:

// Full dividend system deployed in one call (address hook, address treasury, address distributor) = StreamFactory(FACTORY).deploy( token, // your token contract address stocks, // [NVDA, AAPL, GOOGL, META] hookSalt // pre-mined CREATE2 salt (0xCC ending) ); // After this call: // ✓ Hook deployed at address ending 0xCC // ✓ Treasury holds ETH, owns distributor relationship // ✓ Distributor knows your token holders // ✓ 0.5% protocol fee set to $STREAM treasury // ✓ Full ownership transferred to msg.sender

Salt Mining for Integrations

Because the hook is deployed by the factory contract (not the canonical Create2Deployer), the salt must be mined using the factory address as deployer. The treasury address used in the hook constructor is predictable from the factory's nonce:

Treasury Address Prediction
Treasury address:
T = RLP(factory_address, nonce=1)[12:]
Hook salt constraint:
CREATE2(factory, salt, bytecode(T))[31] = 0xCC
This address derivation assumes the treasury is the first CREATE deployment from the factory in each deploy() call (nonce=1). Note that if the factory uses ordinary CREATE, its deployment nonce increments across its lifetime, so this formula applies only when the factory has performed no prior CREATE deployments in the same call sequence. Integrators should verify the exact nonce against the StreamFactory.sol implementation before mining a salt.
08

Tokenomics & Math

$STREAM Token Parameters

ParameterValueNotes
NameStockStreamERC-20 compliant
Symbol$STREAM
Total Supply1,000,000,000Fixed, no minting
Decimals18Standard
Min to earn10,000 $STREAMMinimum eligible balance
Hook fee1% (100 bps)On every ETH/$STREAM swap
Factory fee0.5% (50 bps)On StreamFactory distributions
NetworkRobinhood ChainChain ID: 4663

Yield Calculation for Holders

A holder's annual stock yield depends on their proportional share of eligible supply and total protocol volume. For holder h with balance b_h:

Holder Annual Yield Formula
Pool fee revenue:
R_pool = V_annual × 0.01
1% of annual swap volume
Factory revenue:
R_factory = Σᵢ (V_i × fee_i × 0.005)
0.5% of all integration distributions
Total protocol ETH:
R_total = R_pool + R_factory
Holder annual yield:
Y_h = R_total × (b_h / S_e)
Where: V_annual = annual $STREAM pool volume · V_i = annual volume of integration i · fee_i = hook fee rate of integration i · S_e = total eligible $STREAM supply

Illustrative Scenario

The following is a purely illustrative example using conservative assumptions. It is not a projection or guarantee of any returns.

Illustrative Example (Not a Projection)
Assumptions:
$10M daily $STREAM pool volume (separate from) 10 integrations averaging $1M/day each = $20M total ecosystem volume
Pool fee/day:
$10M × 0.01 = $100,000 in ETH
Factory fee/day:
10 × $1M × 0.01 × 0.005 = $500 in ETH
Annual total:
($100,000 + $500) × 365 ≈ $36.7M in stocks distributed
Holder with 1%:
1% × $36.7M = $367,000/year in tokenized stocks
⚠ This is illustrative only. Actual volume, number of integrations and fee rates will vary significantly. This should not be construed as a yield estimate or investment projection.

Dividend on Dividend, Second Order Yield

A unique property of StockStream on Robinhood Chain is the compounding second-order yield. When $STREAM holders receive tokenized stock tokens, those tokens may reflect underlying corporate actions through the issuer's uiMultiplier() balance-accounting mechanism, which changes the shares-per-token relationship rather than paying a conventional cash dividend. This creates a yield-on-yield structure that has a compounding exposure mechanism:

Second-Order Value Accrual (Illustrative)
Layer 1 yield:
Y₁ = R_total × (b_h / S_e)
stock tokens from swap fees
Y₂ = illustrative estimate of additional value from holding distributed Stock Tokens
Y₂ depends on the issuer's corporate-action mechanics, token multiplier changes, stock prices, distribution timing and holding period. This is not a guaranteed yield.
Where: d_stock = weighted average dividend yield of the stock basket (NVDA ~0.03%, AAPL ~0.5%, GOOGL ~0.2%, META ~0.4% (illustrative yields based on publicly available data, subject to change)). Layer 2 yield accrues automatically via uiMultiplier() with no user action required.

Fee Structure Summary

Fee TypeRateDestinationTrigger
$STREAM pool hook fee1% (100 bps)StockTreasury → stocks → holdersEvery swap on ETH/$STREAM pool
StreamFactory protocol fee0.5% (50 bps)$STREAM treasury → holdersEvery integration buyStocks() call
StreamFactory hook fee1–3% (configurable)Integration treasury → their holdersEvery swap on integration pool
Issuer redemption feeSee current Robinhood Assets termsRobinhood Assets (Jersey) LtdRedeeming stock tokens with issuer — subject to change
09

Protocol Flywheel

StockStream is designed as a self-reinforcing system where each component strengthens the others. The flywheel has two interconnected loops, the $STREAM loop and the StreamFactory loop.

The $STREAM Loop

$STREAM Value Flywheel
Higher dividends → more demand for $STREAM
More $STREAM demand → higher price → more swap volume
More swap volume → more fees captured → higher dividends
↻ Repeats indefinitely

The StreamFactory Loop

StreamFactory Revenue Flywheel
Integration deployed → 0.5% protocol fee flows to $STREAM treasury
More protocol revenue → higher $STREAM dividends
Higher dividends → more demand for $STREAM
More $STREAM demand → higher price → more projects want to integrate
↻ Network effect compounds with each integration

Switching Cost Analysis

Once a project integrates StreamFactory, their holders begin receiving tokenized stock distributions automatically. The switching cost for the project to leave is the loss of their holders' dividend stream, a tangible, quantifiable cost that increases over time as holders accumulate stock positions. This creates a sticky integration dynamic that does not depend on governance or lock-up mechanics.

Annual Holder Value at Risk
Holder loss:
L_holder = Y_h (lost annual stock yield per holder)
Project reputational loss:
V_at_risk = N_holders × Avg(Y_h)
Switching cost scales with holder count, average yield and holder engagement. For a project with 10,000 holders averaging $100/year in stock dividends, the annual holder yield at risk is approximately $1,000,000.
10

Security

Trust Model

ComponentTrust LevelMitigation
StreamStockFeeHookTrustlessNo owner, no upgrade, immutable on deploy
StockTreasuryOwner-managedOwner can add/remove stocks, update keeper
StockDistributorKeeper-managedKeeper runs distribution cycle, resumable
Keeper botOperational dependencyCannot steal funds. Fees accumulate if offline and distribute when resumed.
Uniswap V4External protocol dependencyRelies on the deployed PoolManager and hook architecture. An audit does not guarantee absence of risk.
Robinhood ChainTrustedL2 operator dependency, Arbitrum-based
Stock token issuerTrustedRobinhood Assets (Jersey) Ltd, issuer credit risk

Key Risks

Audit Status

⚠ No Formal Audit

The protocol has been compiled with zero errors on Solidity 0.8.26 and verified end-to-end on Robinhood Chain testnet (Chain ID: 46630). A formal security audit by a third-party firm has not been conducted as of this writing. All contracts are open source. Users should exercise appropriate caution and never deploy more capital than they are prepared to lose.

11

Roadmap

Phase 01, Foundation

Phase 02, Ecosystem Growth

Phase 03, StreamAgent

Phase 04, StreamLive

12

Appendix

Testnet Deployments (Chain ID: 46630)

ContractAddress
StreamStockToken0x0E10991577e5F1C88998520D1e3c208816D9FC46
StockTreasury0x27e94FB5c717FAB6300197A9dfBdf109268dbda8
StockDistributor0x04AFc82D62b0017376d2101F83FeC22A87435481
StreamStockFeeHook0xb77e331d3388C65daE62af1db5D2b50B0F0000cc
StreamFactory0x977e1b69Ca89fB9F33e56f1AcAa18Ed409FDb643

Key RH Chain Addresses

ContractAddress
V4 PoolManager0x8366a39CC670B4001A1121B8F6A443A643e40951
Create2Deployer0x4e59b44847b379578588920cA78FbF26c0B4956C
NVDA Token0xd0601CE157Db5bdC3162BbaC2a2C8aF5320D9EEC
AAPL Token0xaF3D76f1834A1d425780943C99Ea8A608f8a93f9
GOOGL Token0x2e0847E8910a9732eB3fb1bb4b70a580ADAD4FE3
META Token0xc0D6457C16Cc70d6790Dd43521C899C87ce02f35
TSLA Token0x322F0929c4625eD5bAd873c95208D54E1c003b2d
MSFT Token0xe93237C50D904957Cf27E7B1133b510C669c2e74

Notation Reference

SymbolDefinition
VETH value of a swap
FFee amount captured by hook
BTreasury ETH balance
nNumber of registered stock tokens
b_h$STREAM balance of holder h
b_minMinimum balance to earn (10,000 × 10¹⁸)
S_eTotal eligible supply (Σ b_h where b_h ≥ b_min)
A_sTotal stock s distributed in a cycle
D_{h,s}Allocation of stock s to holder h
f_pProtocol fee rate (0.005 = 0.5%)
Y_hAnnual yield for holder h
R_poolAnnual protocol revenue from $STREAM pool
R_factoryAnnual protocol revenue from StreamFactory
d_stockWeighted average dividend yield of stock basket

Resources

Legal Disclaimer

Legal Disclaimer

This whitepaper is provided for informational purposes only and does not constitute financial, investment, legal or tax advice. StockStream is a software protocol, not a fund, investment vehicle or regulated financial product. Participation in the StockStream protocol involves substantial risk including the potential loss of all capital deployed. Tokenized stock securities referenced herein are debt securities issued by Robinhood Assets (Jersey) Limited and are subject to issuer credit risk. These securities are not available to US persons, UK residents, Canadians or Swiss residents. Nothing in this document constitutes an offer or solicitation to buy or sell any security or digital asset in any jurisdiction. All mathematical examples and illustrative scenarios in this document are for explanatory purposes only and are not projections, forecasts or guarantees of any financial outcome.