Skip to content

Token economics

New NEAR is minted every epoch. Gas burn destroys NEAR; buybacks move NEAR into a wallet that holds it. The two are kept apart: only burn lowers total supply.

Issuance, buybacks and burn, NEAR per day

In the 30 days to 2026-10-31, about 89.6K NEAR were issued per day, against 9.6K NEAR received by the buyback wallet and 1.2K NEAR burnt as gas. Issuance roughly halved at marker 1 (2025-10-30).

  1. 12025-10-30: Daily gross issuance falls from about 176,237 to 88,823 NEAR (14-day means); 2025-10-29 is a transition day (from the data)
  2. 22026-02-23: NEAR Intents fee switch goes live; revenue used for NEAR buybacks (reported, source 1, source 2)
  3. 32026-04-27: First observed inflow to buybacks.multisignature.near (from the data)
  4. 42026-09-09: 502,792 NEAR moved between revenue wallets (netted out, not a buyback) (from the data)
  5. 52026-10-01: NEAR Intents exploit; 1Click services halted (reported, source 1, source 2, source 3)

7-day means. The buyback wallet is first observed on 2026-04-27; where buybacks went before that is unknown, so the line starts there. Issuance is derived from total supply plus burn.

Query and model

Computed by coverage.issuance_gross_near, coverage.buyback_near (7-day means) from the tables below.

supply_daily (sql/supply_daily.sql)

-- supply_daily: end-of-day total supply and gas burn, in NEAR (yocto / 1e24).
-- Params: @start_date, @end_date (inclusive).
-- burnt_near = tokens_burnt of execution outcomes + receipt_conversion_tokens_burnt of transactions
-- (DATA_AUDIT.md check 2). Values are FLOAT64 in the source: ~15 significant digits.
WITH blk AS (
  SELECT
    block_date,
    MAX(block_height) AS block_height,
    MAX_BY(total_supply, block_height) AS total_supply
  FROM `bigquery-public-data.crypto_near_mainnet_us.blocks`
  WHERE block_date BETWEEN @start_date AND @end_date
  GROUP BY block_date
),
eo AS (
  SELECT block_date, SUM(tokens_burnt) AS burnt_receipts
  FROM `bigquery-public-data.crypto_near_mainnet_us.execution_outcomes`
  WHERE block_date BETWEEN @start_date AND @end_date
  GROUP BY block_date
),
tx AS (
  SELECT block_date, SUM(receipt_conversion_tokens_burnt) AS burnt_conversion
  FROM `bigquery-public-data.crypto_near_mainnet_us.transactions`
  WHERE block_date BETWEEN @start_date AND @end_date
  GROUP BY block_date
),
circ AS (
  SELECT
    block_date,
    MAX_BY(circulating_tokens_supply, computed_at_block_height) AS circulating_supply
  FROM `bigquery-public-data.crypto_near_mainnet_us.circulating_supply`
  WHERE block_date BETWEEN @start_date AND @end_date
  GROUP BY block_date
)
SELECT
  block_date AS `date`,
  block_height,
  total_supply / 1e24 AS total_supply_near,
  (burnt_receipts + burnt_conversion) / 1e24 AS burnt_near,
  burnt_receipts / 1e24 AS burnt_receipts_near,
  burnt_conversion / 1e24 AS burnt_conversion_near,
  circulating_supply / 1e24 AS circulating_supply_near
FROM blk
LEFT JOIN eo USING (block_date)
LEFT JOIN tx USING (block_date)
LEFT JOIN circ USING (block_date)
ORDER BY 1

fee_wallet_inflows_daily (sql/fee_wallet_inflows_daily.sql)

-- fee_wallet_inflows_daily (raw balances): end-of-day liquid NEAR balance of the revenue wallets.
-- Params: @start_date, @end_date (inclusive), @wallets (ARRAY<STRING>).
-- ft_balances_daily has no block_date column; its partition column is epoch_date, so the date
-- filter is on epoch_date (documented exception to CLAUDE.md rule 2). liquid is in NEAR units.
-- Daily changes are derived in Python (capture.extract.fee_wallets).
SELECT
  epoch_date AS `date`,
  account_id AS wallet,
  'NEAR' AS token,
  liquid AS balance_end
FROM `bigquery-public-data.crypto_near_mainnet_us.ft_balances_daily`
WHERE epoch_date BETWEEN @start_date AND @end_date
  AND account_id IN UNNEST(@wallets)
ORDER BY 1, 2
Data table
DateIssuanceBuybackBurn
2026-10-038801889231661
2026-10-049167988011567
2026-10-058777085761469
2026-10-068754979581396
2026-10-079086271581225
2026-10-089047879131013
2026-10-099044595101001
2026-10-1090560102621285
2026-10-1186899110431745
2026-10-1290781110561775
2026-10-1390866110221807
2026-10-1489339133251824
2026-10-1589463119752313
2026-10-1689675101682319
2026-10-178977796402045
2026-10-188985089461565
2026-10-198995688381517
2026-10-209009595081466
2026-10-218801671961446
2026-10-22916797485857
2026-10-23876257576839
2026-10-24908497838830
2026-10-25905258384819
2026-10-26900139220808
2026-10-27905519279809
2026-10-28901609530780
2026-10-298999410595790
2026-10-308998811514807
2026-10-318646511633799
2026-11-0190165–803
  • supply_daily.parquet · BigQuery public dataset · 2025-05-10 to 2026-11-01 · pulled 2026-11-02T03:40:33Z · sha256 382b732b
  • fee_wallet_inflows_daily.parquet · BigQuery public dataset · 2025-11-07 to 2026-10-31 · pulled 2026-11-02T03:40:35Z · sha256 b32041f1

Two views of coverage: float and total supply

On 2026-10-31, buybacks and burn covered 0.120 of 30-day issuance in the float view, but only 0.014 in the total-supply view, because NEAR bought back is held, not burnt.

  1. 12025-10-30: Daily gross issuance falls from about 176,237 to 88,823 NEAR (14-day means); 2025-10-29 is a transition day (from the data)
  2. 22026-02-23: NEAR Intents fee switch goes live; revenue used for NEAR buybacks (reported, source 1, source 2)
  3. 32026-04-27: First observed inflow to buybacks.multisignature.near (from the data)
  4. 42026-09-09: 502,792 NEAR moved between revenue wallets (netted out, not a buyback) (from the data)
  5. 52026-10-01: NEAR Intents exploit; 1Click services halted (reported, source 1, source 2, source 3)
Query and model

Computed by coverage.cr_float, coverage.cr_supply (src/capture/models/coverage.py) from the tables below.

supply_daily (sql/supply_daily.sql)

-- supply_daily: end-of-day total supply and gas burn, in NEAR (yocto / 1e24).
-- Params: @start_date, @end_date (inclusive).
-- burnt_near = tokens_burnt of execution outcomes + receipt_conversion_tokens_burnt of transactions
-- (DATA_AUDIT.md check 2). Values are FLOAT64 in the source: ~15 significant digits.
WITH blk AS (
  SELECT
    block_date,
    MAX(block_height) AS block_height,
    MAX_BY(total_supply, block_height) AS total_supply
  FROM `bigquery-public-data.crypto_near_mainnet_us.blocks`
  WHERE block_date BETWEEN @start_date AND @end_date
  GROUP BY block_date
),
eo AS (
  SELECT block_date, SUM(tokens_burnt) AS burnt_receipts
  FROM `bigquery-public-data.crypto_near_mainnet_us.execution_outcomes`
  WHERE block_date BETWEEN @start_date AND @end_date
  GROUP BY block_date
),
tx AS (
  SELECT block_date, SUM(receipt_conversion_tokens_burnt) AS burnt_conversion
  FROM `bigquery-public-data.crypto_near_mainnet_us.transactions`
  WHERE block_date BETWEEN @start_date AND @end_date
  GROUP BY block_date
),
circ AS (
  SELECT
    block_date,
    MAX_BY(circulating_tokens_supply, computed_at_block_height) AS circulating_supply
  FROM `bigquery-public-data.crypto_near_mainnet_us.circulating_supply`
  WHERE block_date BETWEEN @start_date AND @end_date
  GROUP BY block_date
)
SELECT
  block_date AS `date`,
  block_height,
  total_supply / 1e24 AS total_supply_near,
  (burnt_receipts + burnt_conversion) / 1e24 AS burnt_near,
  burnt_receipts / 1e24 AS burnt_receipts_near,
  burnt_conversion / 1e24 AS burnt_conversion_near,
  circulating_supply / 1e24 AS circulating_supply_near
FROM blk
LEFT JOIN eo USING (block_date)
LEFT JOIN tx USING (block_date)
LEFT JOIN circ USING (block_date)
ORDER BY 1

fee_wallet_inflows_daily (sql/fee_wallet_inflows_daily.sql)

-- fee_wallet_inflows_daily (raw balances): end-of-day liquid NEAR balance of the revenue wallets.
-- Params: @start_date, @end_date (inclusive), @wallets (ARRAY<STRING>).
-- ft_balances_daily has no block_date column; its partition column is epoch_date, so the date
-- filter is on epoch_date (documented exception to CLAUDE.md rule 2). liquid is in NEAR units.
-- Daily changes are derived in Python (capture.extract.fee_wallets).
SELECT
  epoch_date AS `date`,
  account_id AS wallet,
  'NEAR' AS token,
  liquid AS balance_end
FROM `bigquery-public-data.crypto_near_mainnet_us.ft_balances_daily`
WHERE epoch_date BETWEEN @start_date AND @end_date
  AND account_id IN UNNEST(@wallets)
ORDER BY 1, 2
Data table
DateCR_float 30dCR_supply 30d
2026-10-030.1550.013
2026-10-040.1430.013
2026-10-050.1420.013
2026-10-060.1390.013
2026-10-070.1380.013
2026-10-080.1410.013
2026-10-090.1430.013
2026-10-100.1430.014
2026-10-110.1460.015
2026-10-120.1440.015
2026-10-130.1430.015
2026-10-140.1480.015
2026-10-150.1490.017
2026-10-160.1460.017
2026-10-170.1380.017
2026-10-180.1320.017
2026-10-190.1300.017
2026-10-200.1320.016
2026-10-210.1280.016
2026-10-220.1240.016
2026-10-230.1210.016
2026-10-240.1180.016
2026-10-250.1170.016
2026-10-260.1190.016
2026-10-270.1210.015
2026-10-280.1220.015
2026-10-290.1220.015
2026-10-300.1220.014
2026-10-310.1200.014
2026-11-01–0.013
  • supply_daily.parquet · BigQuery public dataset · 2025-05-10 to 2026-11-01 · pulled 2026-11-02T03:40:33Z · sha256 382b732b
  • fee_wallet_inflows_daily.parquet · BigQuery public dataset · 2025-11-07 to 2026-10-31 · pulled 2026-11-02T03:40:35Z · sha256 b32041f1