TailFeed tailfeed_ [ x ] [ src ]

Price feeds for the
tokens nobody prices.

170 of the 203 Stock Tokens on Robinhood Chain have no onchain price feed — no contract on earth can read them. TailFeed publishes what's missing, in the format every contract already speaks. And we audit the feeds that do exist.

watch them tick ⟶
–feeds live onchain
–rounds pushed total
5 minheartbeat cadence

live on robinhood chain testnet (46630) · reads are free, forever · not affiliated with Robinhood

// live feeds

Read straight from the chain by your browser — there is no backend here either. This table is itself the demo.

feedprice roundupdatedproxy
connecting to rpc.testnet…█
—

feeds move on ≥0.5% deviation or the 5-minute heartbeat — during US market hours ticks land every few minutes. click any proxy to copy it.

// the gap

Every square is one of the 203 Stock Tokens. A contract is blind to a token until someone writes its price onchain.

priced by Chainlink — 33
priced by TailFeed — 8
no onchain price — 162

the dark mass is the product. a token without a price tag can't be collateral, can't be indexed, can't be touched by a contract. we're turning the lights on, feed by feed.

// how it works

Boring by design. One publisher, one batch, every deviation that matters.

  ┌─────────────────┐
  │ ROBINHOOD       │
  │ public quotes   │  ①
  └────────┬────────┘
           v   free API, polled every 5 min

read

The exchange already publishes every quote free on its public API — tokenBid and tokenAsk included. Off-chain, though. Invisible to contracts.

  ┌─────────────────┐
  │  filter: Δ≥0.5% │  ②
  └────────┬────────┘
           v   quiet feeds are skipped

filter

Feeds update on a real move or the heartbeat. Noise never hits the chain; nobody pays gas for stillness.

  ┌─────────────────┐
  │  ONE tx, batch  │  ③
  └────────┬────────┘
           v   every moved feed, once

publish

One signed transaction updates all moved feeds together. Each feed keeps its own AggregatorV3 address — swap one address in your contract and you're reading TailFeed.

// integrate

If your contract already reads Chainlink-style feeds, you already know TailFeed. Swap the address, change nothing else.

// the interface you already have
interface AggregatorV3 {
    function latestRoundData() external view returns (
        uint80 roundId, int256 answer, uint256 startedAt,
        uint256 updatedAt, uint80 answeredInRound
    );
}

contract Reader {
    // TailFeed proxy — same shape as any Chainlink feed
    AggregatorV3 internal constant CRM_USD =
        AggregatorV3(0x4028E40d8596fB18870e63C3a9f1aa0109B96888);

    function price() public view returns (int256) {
        (, int256 ans,,,) = CRM_USD.latestRoundData();
        return ans; // 21550718797 = $215.50718797, 8 decimals
    }
}
// npm i tailfeed  (or vendor one file — zero deps)
import TailFeed from 'tailfeed';

const tf = new TailFeed('https://rpc.testnet.chain.robinhood.com');
const feeds = await tf.list();          // every live feed + address
const crm   = await tf.read('CRM');

console.log(crm.price);      // 215.50718797
console.log(crm.round);      // 13
console.log(crm.updatedAt);   // Date — when the chain last heard
# read a feed with cast, right now:
$ cast call 0x4028E40d8596fB18870e63C3a9f1aa0109B96888 \
    "latestRoundData()" --rpc-url \
    https://rpc.testnet.chain.robinhood.com

# the registry that owns all feeds:
$ cast call 0x05128EC5a91Ee365e1E8b38f83157A84A5b7f2Af \
    "getFeed(uint256)(uint80,int256,uint256,uint256,address)" 1 \
    --rpc-url https://rpc.testnet.chain.robinhood.com

// the watchdog

Being an oracle isn't just publishing. It's checking. We audit every feed on this chain — ours first, and everyone else's too.

[ finding 001 ]

One existing feed on this chain sat 0.40% off its exchange quote — while its heartbeat looked perfectly fresh. A lending market using it naked would have been quietly mis-pricing collateral all afternoon. It rotated back within the hour. Still: an hour is a long time when you're an oracle.

Every market hour our checker reads all 33 existing feeds plus our own, compares each answer against the exchange's own token quote, and flags anything outside the spread. The uptime log is public history — an oracle that publishes its own track record is asking you to check its work.

the checker is in the repo. run it against our numbers. that's the point.

// contracts

Verified source, no mint, no upgrade path, one fixed pusher, reads free forever. Don't trust this sentence — click through and read the contract.

FeedRegistry

0x05128EC5a91Ee365e1E8b38f83157A84A5b7f2Af batch pushes · own the tx, not the feed ✓ verified on explorer ⟶
  • no mint function exists — the token-less revenue model is a feature, not a gap
  • no proxy upgrade pattern — what's verified today is what runs tomorrow
  • one pusher, fixed at construction — visible in source, no admin rotation
  • reads cost nothing — no key, no signup, no whitelist

feed proxy addresses: in the live table above — each verified, each an independent AggregatorV3.

// straight answers

Is this Chainlink?

No. Chainlink publishes 33 feeds on this chain and does it well. TailFeed prices the other 170 and audits everyone's feeds — ours and theirs — against the exchange's own quotes. Same interface, different publisher.

Why do 170 tokens have no price feed?

Economics. Operating a feed costs money, so oracles cover the highest-volume names first. The long tail waited — and that tail is 84% of the tokens on this chain. We built for it deliberately: batch pushing makes covering all of them affordable.

Where do the prices come from?

The exchange's own public quotes API — the same numbers a human sees on the trading screen, published onchain through our verified contracts with the timestamp of publication. Round timestamps let you be the staleness judge.

Why testnet first?

Because infrastructure earns its mainnet slot. Shake out every failure mode on testnet, prove weeks of clean rounds, publish the uptime log — then mainnet. The beta label means something here.

What does it cost?

Reading feeds: nothing, no key, forever. Later there'll be a paid tier for alerts, history and API access — reading stays free. Free reads are how an oracle gets adopted; adoption is the entire game.

Is this investment advice?

No, twice no. It's developer infrastructure, in testing. Prices describe Stock Tokens; they are not recommendations, and this project is not affiliated with Robinhood Markets Inc.