Who is guarding NEAR?
NEAR stays honest because people lock up their coins to vouch for it. That is called staking, and the network pays for it with new coins. In October 2025 NEAR cut that pay in half. Stakeout reads the chain to see who stayed, who really holds the stake, and whether the people running the machines can afford to keep going.
One click asks a public NEAR node for today's validator list and recounts the headline numbers in your browser. No server of ours is involved.
accounts hold more than a third of all staked NEAR. 162,327 accounts stake in total.
Counted at block 224,048,464 on 11 November 2026 from every staking pool on the network.
Check your own stake
Type any NEAR account. Your browser reads its staking positions from public nodes and tells you, in plain words, whether each one is earning.
The query
GET https://api.fastnear.com/v1/account/{account}/staking # which pools the account uses
POST https://rpc.mainnet.fastnear.com query call_function
{pool}.get_account({"account_id": account}) # staked, unstaked, can it be withdrawn
{pool}.get_reward_fee_fraction() # the fee right now
The verdict joins that with the pool's last 30 days of uptime from this site's data (pipeline/analyze.py).Some operators that keep 100% of rewards pay their clients another way, off the chain or in another token. The chain cannot show that, so the tool says what the pool contract does and no more.
NEAR halved what it pays for security
New NEAR created per year, as a share of all NEAR
What it shows: the network created 4.98% more NEAR a year until 29 October 2025, and 2.48% since. The reward for one epoch fell from 60,250 to 26,999 NEAR.
The query
-- Every epoch boundary on NEAR mainnet, found from the token supply alone.
--
-- NEAR mints staking rewards once per epoch, in the epoch's first block. Every other block only
-- burns fees. So the first block of an epoch is exactly a block whose total supply is higher than
-- the block before it. That block's parent hash is the id the protocol gives to the epoch after
-- next, which is what the `validators` RPC method takes.
--
-- Scans block_height, block_timestamp, prev_block_hash and total_supply: about 15 GB for all history.
-- Narrow @from_date / @to_date to scan less. Always filtered on block_date.
WITH blocks AS (
SELECT
block_date,
block_height,
block_timestamp,
prev_block_hash,
total_supply,
LAG(total_supply) OVER (PARTITION BY block_date ORDER BY block_height) AS supply_before
FROM `bigquery-public-data.crypto_near_mainnet_us.blocks`
WHERE block_date BETWEEN @from_date AND @to_date
),
day_end AS (
SELECT block_date, MAX_BY(total_supply, block_height) AS closing_supply
FROM `bigquery-public-data.crypto_near_mainnet_us.blocks`
WHERE block_date BETWEEN DATE_SUB(@from_date, INTERVAL 1 DAY) AND @to_date
GROUP BY block_date
)
SELECT
b.block_height AS epoch_start_height,
b.block_timestamp AS epoch_start_timestamp_ns,
b.prev_block_hash AS last_block_hash_of_previous_epoch,
b.total_supply / 1e24 AS supply_after_mint_near,
COALESCE(b.supply_before, d.closing_supply) / 1e24 AS supply_before_mint_near,
(b.total_supply - COALESCE(b.supply_before, d.closing_supply)) / 1e24 AS minted_near
FROM blocks AS b
LEFT JOIN day_end AS d
ON d.block_date = DATE_SUB(b.block_date, INTERVAL 1 DAY)
WHERE b.total_supply - COALESCE(b.supply_before, d.closing_supply) > 100e24
ORDER BY b.block_heightShare of all NEAR that is staked
What it shows: stakers did not leave. On average 45.7% of NEAR was staked in the 90 days before the cut and 46.5% in the 90 days after. The yield for a validator that never misses fell from 10.4% to 5.0%.
The query
POST https://rpc.mainnet.fastnear.com {"method": "validators", "params": {"epoch_id": "<id>"}}
One call per epoch, 4,410 epochs since 29 March 2021. Staked = sum of current_validators[].stake.
Supply at each epoch comes from sql/01_epoch_boundaries.sql. Code: pipeline/fetch_chain.py, pipeline/analyze.pyA few accounts own most of the stake
The usual decentralization number counts validators. This one counts whose money it is, from every delegator in every pool.
Whose NEAR is staked
What it shows: 99 accounts with 1M NEAR or more hold 69% of the stake. The 160,264 accounts under 10,000 NEAR hold 3.7%.
The 12 largest stakers
What it shows: counted by account, 11 hold a third. Counting each treasury's accounts as one, 8 do.
Share of stake in private pools that one treasury owns
What it shows: pools that charge a 100% fee and have one holder with at least 95% went from 0.4% of all stake a year ago to 19.0% now. These are treasuries staking their own NEAR.
The query
For each of 660 staking pools, at block 224,048,464:
{pool}.get_reward_fee_fraction()
{pool}.get_accounts({"from_index": i, "limit": 500}) # every delegator: staked, unstaked, can_withdraw
A pool is private when its fee is 100% and one account holds at least 95% of it.
The line is those pools' stake in each epoch's validator set, divided by total stake.
Code: pipeline/fetch_pools.py, pipeline/analyze.py (census)The validator set is thinner than it looks
Validators in the active set
What it shows: the count peaked at 448 on 6 April 2026 and is 338 now, down 25%. On average 17 seats per epoch produced nothing over the last year.
How few could stop the chain
What it shows: the smallest group holding more than a third of the stake. Counted by pool it is 9. Counting pools run by the same operator as one, it is 5.
Where three liquid-staking contracts put their NEAR
What it shows: three contracts hold 9.2% of the stake and spread it thin. Without their money 170 of 338 validators would hold less than the entry bar of 9,428 NEAR. In 188 pools they supply more than 80% of the stake.
The query
From the census above: for each validator, the stake held by meta-pool.near, linear-protocol.near and lst.rhealab.near compared with the validator's total and with the lowest stake in the active set (the entry bar). Operators: pools that report the same owner account, plus the name families in data/static/operators.csv.
Can a validator pay for itself?
A validator earns its fee on the rewards of the NEAR staked with it. Move the sliders. The count updates from each validator's real stake and real fee.
The node cost is an assumption, not a measurement. NEAR's own hardware guide is in METHOD.md. Everything else here is read from the chain.
Validators by yearly fee income
What it shows: at today's price and reward rate, half of all validators earn less than $1,972 a year in fees. 126 earn more than $3,840, the cost of a $320-a-month node. Before the cut it would have been 170.
Same coin, very different pay
Staked NEAR by what its pool paid delegators over the last 30 days
What it shows: a pool that never missed a duty earned 5.13% a year. After fees and downtime the average staked NEAR earned its owner 4.72%.
The query
For each epoch: reward per staked NEAR at full uptime
= 90% x (NEAR minted for the epoch, adjusted for validators that were offline) / total stake
A pool earns that times its uptime factor: 0 below 90% uptime, full at 99%, a straight line between.
A delegator keeps (1 - fee). Compounded over the 102 epochs of the last 30 days and annualized.
Checked against the chain: see "Does the model match?" in METHOD.md. Code: pipeline/metrics.pyEvery staking pool
Click a column to sort. "Paid 30d" is what a delegator earned, as a yearly rate. "From 3 contracts" is the share of the pool's stake that comes from the three liquid-staking contracts.
Stake can leave in about a day, and once it did
NEAR staked, last 14 months
What it shows: staked NEAR fell 14.7% in 29 days, to 40.7% of supply, and most of it returned within weeks into new pools. Unstaking takes four epochs, about 28 hours.
The query
Same validator sets as chart 02, one point per day. Leaving now: sum of unstaked_balance where can_withdraw is false, across every pool in the census. Accounts adding stake or unstaking in a day: sql/03_staking_pool_usage.sql on the NEAR BigQuery dataset, 8 November 2026 and 9 November 2026. Active accounts: sql/02_network_daily.sql, median of the last 30 days.
Cheap security is holding. The weak point is who runs it.
NEAR halved the pay for securing the network on 29 October 2025 and the stake did not leave: 45.7% of all NEAR was staked before and 46.5% after. What changed is who holds it and who runs it. Private treasury pools went from 0.4% to 19.0% of the stake in a year, 11 accounts now hold a third of it, and 170 of 338 validator seats exist only because three liquid-staking contracts put money there. Our thesis to 2031: NEAR can keep its low issuance, and with it low dilution for holders, because the capital is sticky. The risk is the thin layer of independent operators, and a second cut to 1.6% is already approved. Of 10 tests that could prove this wrong, 6 pass, 3 sit at the limit and 1 fails.
Tests this thesis can fail
Each test is recomputed by python rebuild.py. The full reasoning, the evidence against, and what would change our mind are in THESIS.md.
Five years of dilution, to 2031
What the reward bill buys
Every number on this page can be rebuilt
git clone https://github.com/Eloneshj/stakeout cd stakeout python rebuild.py # Python 3.10+, no packages, no keys, no network python rebuild.py --fresh # pulls it all again from public NEAR nodes (slow: free nodes are rate-limited)
The first command checks the raw files against their hashes, recomputes every number, runs the unit tests, then recalculates the headline figures a second way with separate code. It ends with ALL CHECKS PASS. Sources: NEAR RPC nodes (FastNEAR, Shitzu, near.org), the NEAR public BigQuery dataset, DefiLlama for prices, near.social for profiles and posts.
Talk to the people holding your stake
Delegators and validators have no shared room. near.social is a public network on NEAR where every post is signed by an account, so a post can be checked against that account's stake. Stakeout reads it live.
Stake notes
Posts tagged #stakeout. Each one is checked on chain: does the author really stake with the pool they mention?
The query
GET https://api2.near.social/v1/hashtags/stakeout For each post: the first @mention that is a staking pool, then POST rpc {pool}.get_account({"account_id": author}) # the author's stake in that pool, right nowWrite a stake note
Stakeout never signs or sends anything. It writes the post for you. You publish it from your own account, in near.social or with the NEAR command line.
Can you reach your validator?
On 11 November 2026, 1 of the 100 largest validators had an owner account with a near.social profile. They run 3.1% of the stake. The network itself had 151 accounts and 299 posts.
The query
{pool}.get_owner_id() # the account that controls the pool GET https://api2.near.social/v1/accounts/{owner} # has_profile, name, followers, posts