# BASKTR: full brief Last generated from the running application. Every figure below is read from the same constants the product uses, so this document cannot describe a version that does not exist. Site: https://www.basktr.com --- ## 1. What it is, in one paragraph BASKTR is a public scoreboard for market opinions. A user picks assets, gives each one a percentage weight, writes a one-line thesis, and chooses a horizon of 30, 90 or 365 days. On publication the current price of every asset is recorded, a keccak256 fingerprint of those prices is written to Robinhood Chain Testnet, and the call is measured from that moment. When the horizon expires the result is frozen. Nothing about a published call can be edited or deleted, including by the people who built it. ## 2. What it is not - Not a trading app. No order is ever placed. - Not a prediction market. No money is staked and there is no payout. - Not a portfolio tracker. It records what someone claimed, not what they own. - Not an investment product, fund, or advice. - There is no token. There are no fees. There is no revenue. ## 3. The problem it addresses People who are right about markets remind everyone forever. People who are wrong delete the post. Screenshots can be cherry-picked and claims like "I called this" are unfalsifiable. A verifiable track record is one of the last things in finance that remains effectively gatekept: fund managers have audited records, retail has screenshots. BASKTR is an attempt to make an individual market opinion falsifiable and permanent. ## 4. How scoring works At publication, for every asset in the call: publication price, source, and upstream timestamp are recorded Later, performance is: asset return = (current price - publication price) / publication price call return = sum of (weight x asset return) outperformance = call return - benchmark return The headline figure is outperformance, not raw return. Raw return since publication mostly measures when someone published; measuring against the same window measures whether the weighting was any good. A call can make money and still be scored as wrong if the market did better. ### The benchmark basktr-core-10-v1 An equal weight of: BTC, ETH, SOL, AAPL, MSFT, NVDA, AMZN, TSLA, SPY, QQQ The benchmark is a fixed, published list, deliberately not "every asset the app offers". If it were the whole universe, adding assets would silently change what every past and future score meant, and calls published either side of a change could not be compared. The benchmark's prices are frozen into each snapshot at publication, so it cannot drift afterwards either. If the set ever changes it becomes a new version, and existing calls keep the one they were published under. ## 5. The commitment scheme This is the part that makes the record checkable rather than merely asserted. 1. At publication the app builds a snapshot: every holding's price, source and upstream timestamp, plus the full benchmark universe and its prices. 2. Prices are stored as decimal strings at fixed precision, never floats, so the canonical form is byte-identical across runtimes. 3. The snapshot is serialised to canonical JSON with keys in a fixed order and no whitespace. 4. keccak256 of those bytes is the fingerprint, and that value is written to the registry contract in the same transaction that records the call. Anyone can later re-hash the displayed prices and compare with what the chain holds. A mismatch means the prices on screen are not the ones that were published, and the app reports the call as unverified rather than scoring it. Snapshot format version: 2. ## 6. The contract Network: Robinhood Chain Testnet (chain id 46630) Registry: 0xfBF077cE89F7A497B2B0ee644b32c33B25E4fBEA Properties of the deployed bytecode, verifiable by reading the verified source: - It holds nothing. No payable function, no token transfer. There is no balance. - It has no owner. No admin, no roles, no pause. Nobody can alter a published call. - It cannot be upgraded. Not a proxy. The deployed bytecode is final. - It never buys or sells. No execution, custody, pooling or rebalancing. Stored per call: id, creator address, name, thesis, asset symbols, token addresses, weights in basis points, creation timestamp, the id of the call it was remixed from, the snapshot fingerprint, and the horizon in days. ## 7. Data sources - Tokenized stocks, ETFs and commodities: the official Robinhood Stock Token API. Contract addresses are read from the issuer's own endpoint and never inferred from a ticker. Quotes are bid/ask; the midpoint is used. That API publishes no previous close, so a 24h change is not shown for these assets rather than being derived from something it is not. - Crypto: CoinGecko, with Coinbase as a fallback for spot price only. - When a source is unreachable the last real quote is reused, carrying its own original timestamp. Nothing is interpolated, extrapolated or invented. An asset with no quote reports none, and a call containing it is reported as unscored rather than estimated. ## 8. The universe 227 assets total. - Crypto (33): BTC, ETH, SOL, BNB, XRP, ADA, AVAX, DOT, LINK, ATOM, NEAR, APT, SUI, ARB, OP, TON, TRX, LTC, BCH, UNI, AAVE, HBAR, ICP, FIL, RENDER, FET, TAO, DOGE, SHIB, PEPE, WIF, BONK, FLOKI - Tokenized stocks (177): every Robinhood Stock Token, read from their API - ETFs (14): including broad market, sector and international funds - Commodities (3): GLD, SLV, USO ## 9. Remix and lineage Any call can be remixed: the weights load into the builder, the new call records which call it descended from, and it is then judged entirely on its own terms with its own snapshot, its own timestamp and its own expiry. A remix is a disagreement placed on the record, and where both sides can be scored the app shows them side by side against the same benchmark. ## 10. Known limitations, stated plainly These are real and unresolved. A review should weigh them. - **No indexer.** The chain stores the fingerprint; the snapshot prices live in the publisher's browser. Clearing site data leaves the call onchain but makes it impossible to display or score. Shared links carry the snapshot inside the URL to work around this, which makes those links large. - **Resolution is observed, not scheduled.** There is no always-on job. A call is measured the first time the app is opened after its horizon passes. The observation time and the lag are recorded and shown on the call. - **Almost no usage.** This is a prototype. At the time of writing the registry holds a very small number of calls. Any aggregate figure should be read with that in mind, and the app hides ranked views until enough calls exist to make a ranking meaningful. - **Testnet only.** Nothing has been deployed to mainnet. - **The benchmark is the app's own construction.** It is disclosed in full on every call, but it is not an industry index. - **No identity layer.** Creators are wallet addresses. There is no verified link between an address and a public identity, because verifying one honestly needs infrastructure this project does not have. - **Cold start is unsolved.** The product is only interesting once many people publish, and nothing in it currently creates a reason for the first ones to arrive. ## 11. What is deliberately absent No diversification score, momentum score, volatility score or overall rating. No modelled or backtested performance charts. No fabricated view counts, follower counts, engagement numbers or user totals. No leaderboard until enough calls can actually be scored. Where a number cannot be computed honestly the app shows that it cannot, rather than showing a zero or an estimate. --- Generated from the running application at https://www.basktr.com.