← Back to StockBack
● LIVE — StockBack Whitepaper v0.1
Notice: this document describes a real, already-deployed preview, not a fundraising pitch. Every formula, contract address, and rate below is taken directly from the live code, not aspirational. It does not cover every implementation detail — the canonical behavior is whatever the deployed code actually does, which can change; this document may not. StockBack is not a bank, holds no customer deposits, and offers no guaranteed return.
Chain: Robinhood Chain, id 4663 Trusted swap contract: 0x8ebF0E…9F98d5D6c Reserve wallet: 0xB65b0d…3E66b62d Vault contract: 0xA2907e…B0920E26E (deployed, tested — not yet the live path) AAPL vault: 0x980Ab6…D75275FAb Content last verified against code: 2026-08-29
Whitepaper v0.1 — Preview

The rewards rail that can't promise more than it has.

One reward asset class (real tokenized stock), one funding source (ScanHood's own real trading fees), one state machine (Pending → Funded → Claimed), one rule: never credit more than real, already-collected revenue can back.

Because the treasury can't lie about what it actually holds.

01

Introduction

StockBack is a rewards rail with one asset class (real tokenized stock, sourced from ScanHood's live Stock Deck), one funding source (ScanHood's own real trading fee revenue), one state machine per reward (Pending → Funded → Claimed), and one governing rule: never credit a balance for more than real, already-collected revenue can back.

You trade on ScanHood, like you already do. ScanHood earns its usual real fee. StockBack verifies that fee happened on-chain, sets a slice of it aside for you in stock, and — only once a real purchase has actually confirmed — lets you claim it into your own wallet. Nothing about this asks you to learn a new mechanism; it pays you for the one you're already using.

Every reward remains Pending until backed by a confirmed on-chain purchase, becomes Funded once that backing genuinely exists, and only leaves the treasury when the earning wallet successfully claims it. There is no path where a balance is credited ahead of the money that backs it — and no state is skipped: Funded-but-unclaimed is a real, often long-lived condition, not a transient one.

02

The entities and how they relate

Six pieces. Everything in the system is a relationship between them.

EntityWhat it isTLDR
UserThe wallet that tradedIdentity IS the wallet — no login, no Telegram, no separate account
The adapterVerifies one real fee event on-chainAnchored to known contract addresses, never a caller-supplied number
The ledgerAppend-only, hash-chained recordPending → Funded → Claimed, tamper-evident by construction
The treasuryHolds real, swept fee revenueSpend is capped to what's genuinely been swept in, ever
The Stock DeckWhich real tokens are earnableNVDA, AAPL today — AAPL auto-routes into a real yield vault
The claim pathWallet-signature verified withdrawalClaims always go to the wallet that earned them, no exceptions
01User swaps on ScanHood a real fee lands at ScanHood's known fee recipient
02The adapter verifies that transfer against known contracts a Pending entry is recorded
03Separately, the treasury sweeps the real fee recipient revenue-backed spending capacity increases
04Settlement spends real swept capital a real on-chain stock purchase confirms
05The ledger flips the entry to Funded only now does a real balance exist
06User signs a claim message real stock is sent to the wallet that earned it

Every step either moves real capital forward or refuses to move state forward at all — there is no step that only updates a number without a real transaction behind it.

03

The reward

30%
of every verified real fee, the reward rate
live
the real fee is always native ETH, priced via a live on-chain ETH/USD read, never a caller-supplied number
3
block confirmations required before a fee event is trusted
rewardUsd = revenueUsd × REWARD_RATE  (REWARD_RATE = 0.30)

"Pending" is a promise denominated in USD, locked at the moment the fee is verified — not a promise of a fixed token amount. The stock conversion happens once, at settlement (section 05), using the real price at that moment. This avoids a specific ambiguity: promising "30% in NVDA" would leave open whether that means 30% of the fee's dollar value, or 30% of a token amount fixed early and exposed to price drift until settlement. StockBack always means the former.

04

Verification

A fee event is trusted only if all of the following hold, checked directly against the transaction receipt:

CheckWhy
Receipt status succeededA reverted transaction moved nothing
≥3 block confirmationsA fee event just barely mined could still be reorged out
receipt.to is ScanHood's real swap contractAnchors trust to one specific, already-read contract (self-reviewed, not yet third-party audited) rather than to who received a transfer — a forged event from any other contract fails this outright. Corrected mid-build, 2026-08-29: the contract originally checked here has never actually charged a fee on its deployed instance; the real fee-generating contract, confirmed by reading what /swap itself calls, is a different one, verified for real against a live trade before this was trusted.
Exactly one Buy/Sell event from that contractThe real contract emits a typed event carrying the trader's address and the exact fee amount directly — more than one in a single tx is an ambiguous shape the adapter refuses to guess about
Fee is paid in native ETH, priced liveThe real contract's fee is always native ETH, not a token — priced via a live on-chain ETH/USD read at verification time, not a caller-supplied number
Revenue ID not previously consumedThe same real transaction can never be recorded as revenue twice

Trusted contract: 0x8ebF0E2076E116A83204A552973Ed78FA98d5D6c (ScanHoodSwapV2, the contract /swap's own client-side code calls) — real 1% fee, read live off the deployed contract.

05

Settlement

Settlement buys real stock before it credits anything — buy-first, credit-second. A Funded balance can never exceed what was actually, verifiably purchased.

spendUsd = min( totalWeightUsd, availableRevenueBackedUsd )

Where totalWeightUsd is the full promised total across every Pending entry in the batch, and availableRevenueBackedUsd is real swept revenue minus real prior spend (section 06). Spend is never sized above real revenue unless a subsidy is explicitly, loudly authorized — never silently.

Full funding

  • Revenue ≥ total promised
  • Everyone gets exactly 100%
  • scalePct = 100%

Revenue-limited

  • Revenue < total promised
  • Everyone scales down together, by weight — nobody skipped, nobody picked first by timing
  • scalePct = spendUsd ÷ totalWeightUsd × 100%

The scaling itself needs no special-case code: each entry's token payout is tokenAmountReceived × (rewardUsdi ÷ totalWeightUsd), so funding less than the full promise automatically shrinks every entry proportionally to what it was originally promised. A user who earned twice another's reward still receives exactly twice as much, at any funding level.

Every swap enforces a live 3% slippage tolerance against the pool's own current price (read on-chain, not assumed), and every purchase amount is computed as a real balance delta — after minus before — never a raw snapshot that could include unrelated funds already sitting in the treasury.

06

The treasury

availableRevenueBackedUsd = Σ swept − Σ spent

The treasury periodically sweeps ScanHood's real fee-recipient wallet into its own balance, and records every real settlement spend against it. This running total is what settlement's spendUsd is capped to. A subsidy beyond real revenue is possible but never silent: it's a named, explicit parameter, logged distinctly in both the console output and the permanent spend record.

Both revenue recognition (section 04) and treasury asset accounting price the same way now: a real, live on-chain ETH/USD read at the moment it matters, never a caller-supplied number. That wasn't always true in an earlier build — revenue recognition briefly only trusted USDG-denominated fees, back when verification pointed at a different contract. Corrected once the real fee-generating contract (native-ETH fees, always) was identified and verified against a live trade.

07

Claiming

Claiming is wallet-native and self-custodial after withdrawal: the earning wallet authorizes the claim with a real EIP-712 structured signature — the wallet shows labeled fields (wallet, asset, timestamp) inside a domain scoped to StockBack specifically, not an opaque string to trust blindly — and the asset is transferred directly to that same wallet. Before that moment, a Funded balance is held by a dedicated reserve wallet, isolated from general treasury operations, not the user; claiming is what ends that, not a description of the whole system. There is no "claim to a different address" field — that entire phishing shape is closed by construction, not by a warning label.

What's actually transferred depends on how the reward was funded: a plain-stock balance sends the stock token itself; a balance that was auto-routed into the AAPL yield vault (section 05's Stock Deck) sends the vault's own share token instead, real and directly-owned, not redeemed back into raw AAPL first. That matters for three real questions: yield the shares have earned since being Funded belongs to whoever holds the shares — the user, immediately after claiming, same as any other vault depositor. The vault's own deposit/withdraw functions are gated to when it's between epochs, but a plain share transfer is not — verified directly against the vault's Solidity source — so a claim is never blocked or delayed by the vault's epoch state. The user can later withdraw the underlying AAPL from the vault themselves, whenever it's open to do so, exactly as any other depositor would.

5 min
signature freshness window before it expires
a reward must be worth its own real gas cost, times this safety margin
live
the gas-derived component is recomputed from real gas price on every claim
minClaimUsd = max( $0.01, realGasCostUsd × 3 )

$0.01 and 3× are fixed configuration, not claims of precision — what's live is realGasCostUsd itself, recomputed from the real current gas price on every single claim call, so the floor tracks real cost instead of a number someone forgot to update.

A reward below that minimum is not lost — it stays Funded exactly as it was, and combines with a future batch until it clears the floor.

08

Safety

Tamper-evidentEvery ledger entry is chained to the one before it with a real cryptographic hash. A quiet edit to any single record breaks the chain and is detectable on replay.
Crash-retry guardedA real transaction is marked in-flight before it sends, cleared only after the ledger genuinely reflects it. A crash mid-transaction leaves the marker standing, so the next attempt refuses to auto-retry rather than risk paying twice — it stops the damage, it doesn't yet auto-recover the stuck state; that still needs a human to check the chain (see section 10).
On-chain coverage checkedFunded-but-unclaimed liability, per asset, can be compared directly against the treasury's real on-chain balance at any time — a check that can be run, not a continuously-enforced guarantee, and more meaningful once the customer-facing reserve is segregated from general treasury operations (section 10).
Duplicate-proofThe same real fee transaction can never be recorded as revenue more than once — enforced inside the same lock as the write, not a best-effort check.
09

The flywheel

Three structural loops, each following directly from the mechanics above — none of them need a new liquidity mechanism to keep turning.

01

Adoption

More real trading on ScanHood means more real fee revenue, which means more real stock gets Funded, which is the actual reason to keep trading here rather than switching. Nobody has to be recruited into a separate reward game — the reward rides on the activity they were already doing.

02

Trust

The fee event, the settlement purchase, the treasury balance, and the final claim transfer are all independently checkable on-chain — nobody has to trust a number in a database for any of those. Reward entitlement and the Pending/Funded/Claimed state transitions themselves are still server-enforced in this preview (see section 10) — the same honest boundary the phase badge on the main page states directly.

03

Extension

The same engine — verify a real revenue event, credit proportionally, settle from real swept capital — extends to any future ScanHood action that generates real fee revenue, without inventing new infrastructure per action. One rule, applied to a growing list of things people were already doing.

10

What's next

Stated plainly, not buried. The five items originally listed here are done — real, tested, verified against real chain data, not just described. What's left is smaller and named honestly.

Reference-price oracleDone. Settlement now checks the pool's implied price against ScanHood's own real listed-market-price feed before trading, and refuses if they've diverged too far — an independent check, not just self-referential slippage.
Full transaction lifecycleDone. A stale in-flight marker is now automatically reconciled against real chain state on restart — claims resolve fully automatically; a settlement that genuinely succeeded is surfaced for a quick human confirmation rather than left as an opaque stuck state, since re-deriving the exact purchased amount safely is the one piece still done by hand.
Separate customer reserveDone. Real stock purchased for users now lands directly in a dedicated reserve wallet, never the operating treasury — visibly isolated from the moment it's bought, not just in bookkeeping.
EIP-712 claimsDone. Claiming is real structured signing now — your wallet shows labeled fields (wallet, asset, timestamp) inside a domain scoped to StockBack, not an opaque string.
On-chain vault contractDeployed and tested, not yet the live path. A real, audited-by-test contract exists on-chain and has been proven with a real credit-and-withdraw cycle — but settlement and claiming still run through the reserve wallet directly, not through this contract. Wiring the live flow through it is the real remaining step toward not having to trust a server-held ledger at all.
Legal reviewNot something code can close. The disclaimer in this document describes function, not legal or regulatory status, and hasn't had a lawyer's eyes on it.

11

Disclaimer

StockBack is an experimental rewards mechanism layered on top of ScanHood's real trading fee revenue. It does not accept custodial deposits and offers no guaranteed return — Funded balances are backed strictly by real, already-collected fee revenue, capped and proportionally scaled when that revenue falls short of the full promised total. Every proof number and transaction hash referenced across this preview is real, executed from the operator's own wallets, never customer funds. This page is a preview build, not linked from ScanHood's live navigation, and nothing here should be read as investment advice. The characterizations in this section describe function, not legal or regulatory status — this document has not had separate legal review, and shouldn't be read as a substitute for one.