Run a node. Keep what you record.
PeerFeed's coverage grows through an open-source recording node that anyone can run with one command. A node connects to one venue's public WebSocket feed, writes what it sees, keeps it, and uploads it; the aggregator merges every node's records and deduplicates them. You mine the data you need, the shared record gains an independent witness, and you earn data credits for what only you saw.
20 founder seats — opening with the node repository
The node repository is being published. The command below is the one you will run, and the seats, credit rules and weights on this page are already fixed — they will not be renegotiated once the repo is up.
What you run
One container, one venue, public data only:
docker run -e VENUE=pacifica -e NODE_ID=<your-id> -v ./data:/data ghcr.io/peerfeed/peerfeed-node join
- Docker, a machine that stays up, and an ordinary broadband connection.
- Roughly 1-5 GB of disk per venue per day before upload; the node uploads and prunes.
- No keys, no funds, no exchange account — the node only reads public feeds.
Source: https://github.com/peerfeed/node (publishing) · image ghcr.io/peerfeed/peerfeed-node.
Read it before you run it.
Why a second node is worth anything at all
Measured on PeerFeed's own two recorders over a 179-minute window on 2026-09-02, across 9 major venues and 1,609 (venue, minute) pairs: one node recorded nothing at all — every venue at once — for 1 minute; the other for 4 minutes, including a burst of 4 consecutive minutes on one venue. The number of minutes where BOTH nodes were blind was zero. Across the same window, 30 feeds and 16.87 M records, one node held 93.6% of the merged record set and the other 97.9% — neither held all of it.
A solo recorder goes fully blind for 1-4 minutes every 3 hours and cannot tell, because its own logs look healthy. Two independent nodes cover each other. That gap is the product, and filling it is what a founder is paid for.
What founders get
The first 20 nodes to run for a full week, and keep running, are founders. There is no second cohort at these terms.
- The full catalogue, free, for life — every venue and data type PeerFeed sells, for as long as PeerFeed exists.
- A x2 multiplier on every credit your node earns, permanently, not for a trial period.
- Your venue requests go to the front of the integration queue.
- A named line in the contributor list, if you want one.
How credits work, in plain words
Unique records earn
For each venue, data type and minute, the merge counts the dedup keys only your node supplied. Those are what PeerFeed did not have, and they are what you are paid for.
Duplicates do not
A record that k nodes all saw is split k ways, so racing another node for the same stream is worth 1/k to each of you. Being the first observer of a shared record adds a 20% bonus on that record.
Unique pays only once corroborated
A record nobody else saw is only worth something if it was real. It is confirmed either by another node later, or by a validator spot-checking the venue's own API. Uncorroborated records are worth zero — not disputed, just zero.
Credits settle after 24 hours
Corroboration needs a window, so the ledger settles a day in arrears. Nothing is credited faster than that, for anyone.
One ASN counts as one node
Ten containers behind one IP are one observer, for you and for us — PeerFeed's own recorders share one ASN and count as one. A node in an ASN nobody covers earns full weight; a node in an ASN already covered for that venue earns 0.3x.
Late is zero
Your minute's data must reach the archive within about 5 minutes, judged by the upload time our storage recorded, never by a timestamp inside your file. This is what stops anyone re-uploading published data as if they had recorded it.
Credits are a discount, never money
Credits pay for PeerFeed data and nothing else. They are not cash, not a token, not transferable, and they are never sold.
The whole formula
credit = Σ over minutes [ unique_corroborated + shared/k + 0.2 x first_observed ] x W x D x S
- W — the bounty weight for that venue and data type, from the board below.
- D — independence: 1.0 in an ASN nobody covers for that venue, 0.3 in one already covered.
- S — a continuity bonus for an uninterrupted streak.
Every input to your daily line — counts, W, D, S, and what corroborated each unique record — is written to the ledger so you can recompute it yourself and disagree with us if the number is wrong.
Bounty board
What each venue and data type is worth today. Weight W = scarcity x demand, where scarcity = 0.1 + (target - independent nodes) / target with target = 3, and demand is 1.0 until purchase logs replace the default. The board is a static snapshot until the scorer publishes it daily; the formula it uses is the same one either way.
Board date 2026-10-19 · Snapshot — the scorer that publishes this daily is not live yet, so these numbers were computed once, from the same formula, over the catalogue snapshot.
Every row carries the same weight today, and that is the honest state of the board: no venue here has a single observer outside PeerFeed's own ASN, and no purchase history exists yet to tilt demand. Pick on the numbers that do differ — volume per day, and what you can actually keep up with. The weights spread apart the moment either changes.
| Venue | Data type | Class | Weight W | Independent nodes | Scarcity | Demand | ASN gap | Rows / day | Bytes / day | Last seen |
|---|---|---|---|---|---|---|---|---|---|---|
| aevo | ticker | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 75,432,056 | 1.3 GB | 2026-10-19 |
| nado | best_bid_offer | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 17,304,991 | 305.1 MB | 2026-10-19 |
| aster | usdm/mark_price | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 14,978,279 | 379.9 MB | 2026-10-19 |
| edgex | depth | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 12,876,740 | 1.9 GB | 2026-10-19 |
| nado | book_depth | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 12,058,495 | 628.7 MB | 2026-10-19 |
| grvt | ticker | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 6,384,567 | 217.5 MB | 2026-10-19 |
| aevo | orderbook | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 5,911,463 | 127.3 MB | 2026-10-19 |
| grvt | book | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 5,262,866 | 289.1 MB | 2026-10-19 |
| extended | orderbook | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 5,225,918 | 275.2 MB | 2026-10-19 |
| extended | mark_price | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 4,809,732 | 47.9 MB | 2026-10-19 |
| hyperliquid | risk_snapshots | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 4,278,491 | 357.2 MB | 2026-10-20 |
| aster | usdm/depth | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 3,395,320 | 78.9 MB | 2026-10-18 |
| pacifica | book | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 3,122,660 | 432.8 MB | 2026-10-19 |
| apex | orderbook | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 3,071,206 | 187.5 MB | 2026-10-19 |
| polymarket_chain | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 3,059,939 | 189.9 MB | 2026-10-19 |
| polymarket_rtds | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 3,019,512 | 138.8 MB | 2026-10-19 |
| hyperliquid | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 2,892,193 | 108.3 MB | 2026-10-19 |
| lighter | market_stats | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 2,512,660 | 83.1 MB | 2026-10-19 |
| kalshi_catalog | markets | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 2,269,362 | 384.0 MB | 2026-10-19 |
| kalshi | trade | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 2,139,560 | 57.8 MB | 2026-10-19 |
| lighter | depth | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 1,914,212 | 58.6 MB | 2026-10-18 |
| hyperliquid | activeAssetCtx | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 1,271,377 | 53.6 MB | 2026-10-19 |
| kalshi | ticker | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 1,120,766 | 26.6 MB | 2026-10-19 |
| lighter | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 993,007 | 114.9 MB | 2026-10-19 |
| polymarket | book | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 928,737 | 600.6 MB | 2026-10-19 |
| pacifica | prices | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 849,672 | 21.3 MB | 2026-10-19 |
| kalshi | orderbook_delta | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 831,203 | 17.5 MB | 2026-10-19 |
| okx | swap/open_interest | Derived data only | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 810,160 | 34.5 MB | 2026-10-19 |
| edgex | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 676,641 | 44.5 MB | 2026-10-19 |
| aster | usdm/trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 573,465 | 15.9 MB | 2026-10-19 |
| polymarket_chain | redemptions | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 569,504 | 13.1 MB | 2026-10-19 |
| hyperliquid | risk_state_census | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 438,860 | 22.7 MB | 2026-10-20 |
| paradex | bbo | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 321,953 | 4.6 MB | 2026-10-19 |
| extended | funding | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 265,909 | 603.7 KB | 2026-10-19 |
| edgex | ticker | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 257,796 | 30.2 MB | 2026-10-19 |
| apex | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 251,754 | 8.8 MB | 2026-10-19 |
| aster | usdm/ticker | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 243,291 | 13.5 MB | 2026-10-19 |
| polymarket | last_trade_price | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 212,936 | 11.9 MB | 2026-10-19 |
| pacifica | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 188,047 | 3.5 MB | 2026-10-19 |
| extended | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 179,681 | 1.8 MB | 2026-10-19 |
| kalshi_catalog | events | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 157,498 | 2.6 MB | 2026-10-17 |
| polymarket | metadata | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 138,883 | 28.0 MB | 2026-09-30 |
| nado | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 114,648 | 1.6 MB | 2026-10-19 |
| nado | funding_rate | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 104,980 | 940.6 KB | 2026-10-19 |
| okx | swap/funding_rate | Derived data only | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 94,118 | 18.3 MB | 2026-10-19 |
| grvt | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 64,934 | 2.4 MB | 2026-10-18 |
| kalshi | market_lifecycle | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 56,880 | 659.1 KB | 2026-10-19 |
| dydx | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 55,444 | 736.2 KB | 2026-10-19 |
| rho | orderbook | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 43,311 | 664.4 KB | 2026-10-19 |
| polymarket_chain | resolutions | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 40,054 | 3.6 MB | 2026-10-19 |
| mexc | funding_rate | Derived data only | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 36,984 | 301.4 KB | 2026-10-19 |
| rho | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 25,349 | 1.0 MB | 2026-10-19 |
| binance | coinm/liquidations | Derived data only | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 23,562 | 1005.8 KB | 2026-10-19 |
| okx | futures/funding_rate | Derived data only | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 21,233 | 585.9 KB | 2026-10-19 |
| kalshi_catalog | series | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 15,187 | 522.8 KB | 2026-10-17 |
| polymarket_catalog | metadata | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 11,814 | 2.7 MB | 2026-10-19 |
| hyperliquid | allMids_dex | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 9,598 | 689.4 KB | 2026-10-19 |
| bybit | liquidations | Derived data only | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 9,042 | 222.5 KB | 2026-10-19 |
| rho | ticker | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 8,351 | 471.1 KB | 2026-10-19 |
| hyperliquid | allMids | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 7,726 | 5.7 MB | 2026-10-19 |
| okx | swap/liquidations | Derived data only | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 7,006 | 208.1 KB | 2026-10-19 |
| derive | margin | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 6,038 | 5.7 MB | 2026-10-01 |
| okx | futures/open_interest | Derived data only | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 5,653 | 199.8 KB | 2026-10-19 |
| gate | usdt/liquidations | Derived data only | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 5,313 | 137.0 KB | 2026-10-19 |
| derive | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 4,919 | 314.8 KB | 2026-10-01 |
| okx | option/open_interest | Derived data only | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 3,919 | 152.4 KB | 2026-10-19 |
| gmx | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 3,811 | 1.1 MB | 2026-10-19 |
| gmx | orders | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 3,232 | 893.0 KB | 2026-10-19 |
| paradex | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 2,924 | 115.7 KB | 2026-10-19 |
| gains | unregisterTrade | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 1,494 | 50.1 KB | 2026-10-19 |
| gains | registerTrade | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 1,475 | 303.5 KB | 2026-10-19 |
| kalshi_catalog | mve_collections | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 1,406 | 135.0 KB | 2026-10-17 |
| okx | option/liquidations | Derived data only | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 1,253 | 24.0 KB | 2026-10-18 |
| kalshi | orderbook_snapshot | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 1,241 | 181.7 KB | 2026-10-18 |
| nado | funding_payment | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 1,063 | 109.5 KB | 2026-10-19 |
| gmx | positions | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 828 | 721.0 KB | 2026-10-19 |
| okx | futures/liquidations | Derived data only | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 476 | 74.5 KB | 2026-10-19 |
| derive | auctions | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 399 | 32.0 KB | 2026-09-30 |
| gains | updatePositionSize | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 377 | 335.4 KB | 2026-10-19 |
| aster | usdm/liquidations | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 356 | 107.0 KB | 2026-10-19 |
| ostium | trades | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 266 | 189.9 KB | 2026-10-19 |
| gmx | deposits | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 121 | 254.6 KB | 2026-10-18 |
| gmx | withdrawals | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 111 | 219.9 KB | 2026-10-18 |
| apex | orderbook_delta_stats | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 86 | 26.2 KB | 2026-09-28 |
| gmx | liquidations | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 86 | 306.1 KB | 2026-10-19 |
| ostium | orders | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 40 | 81.4 KB | 2026-10-19 |
| nado | liquidation | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 36 | 37.0 KB | 2026-10-19 |
| dydx | markets | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 16 | 65.9 KB | 2026-10-18 |
| ostium | liquidations | Full raw data | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 13 | 43.6 KB | 2026-10-19 |
| gate | btc/liquidations | Derived data only | 0.767 | 1 / 3 | 0.767 | 1.0 | 2 | 9 | 12.1 KB | 2026-10-18 |
Weight W = scarcity × demand, scarcity = 0.1 + (target − independent nodes) / target, target = 3. Demand is 1.0 by default — default (no purchase logs yet — P2-A02). “ASN gap” is how many more independent networks that feed needs to reach target.
ASN and region gaps
PeerFeed's own recorders share one ASN, so they count as one independent observer under the same anti-Sybil rule contributors face. A node in a network nobody covers for that venue earns the full independence multiplier; a second node in an already-covered network earns 0.3×. Region is the practical proxy: put your node somewhere our packets do not already come from.
| Region | Independent nodes | Multiplier for a node there |
|---|---|---|
| europe (PeerFeed) | 1 | 0.3× |
| north-america | 0 | 1.0× |
| asia-pacific | 0 | 1.0× |
| south-america | 0 | 1.0× |
| africa-middle-east | 0 | 1.0× |
A venue PeerFeed does not record at all sits above every row on the board: scarcity 1.100, weight 1.100 — awarded once the bundle passes the validation gateway.
Joining
- Pick a venue from the board above — any row, they are all one observer short of target.
- Run the node for a week. It needs no key and no account; it reads a public feed.
- Send us the node id you used. We check it against the ledger and confirm your seat.
- Your credits start accruing from the first merged minute, settled a day in arrears.
The founder inbox opens with the node repository; until then the terms on this page are the commitment, not a teaser.
Open a node, run one venue for a week, and see your line in the ledger.