Developer
Do new contracts stay in use, and does that move with Intents revenue? A contract counts as retained in a month if it receives at least one function call.
Retention of new contracts by monthly cohort
Of the 467 contracts first deployed in 2026-09, 31.3% were still called the next month.
| Cohort | New contracts | Largest parent | Month +1 | Month +2 | Month +3 |
|---|---|---|---|---|---|
| 2025-11 | 555 | c.aurora (46%) | 18% | 14% | 11% |
| 2025-12 | 276 | bondsquaresreal.launchpad.defishards.near (41%) | 20% | 16% | 14% |
| 2026-01 | 167 | portalpad.near (26%) | 30% | 20% | 20% |
| 2026-02 | 200 | portalpad.near (24%) | 32% | 27% | 28% |
| 2026-03 | 116 | pool.near (34%) | 56% | 52% | 54% |
| 2026-04 | 102 | deposit.aurora (33%) | 26% | 33% | 29% |
| 2026-05 | 52 | venear.dao (33%) | 48% | 40% | 48% |
| 2026-06 | 49 | venear.dao (24%) | 59% | 39% | 43% |
| 2026-07 | 108 | deposit.aurora (35%) | 22% | 34% | 29% |
| 2026-08 | 85 | v1.tmplr.near (22%) | 46% | 48% | not yet |
| 2026-09 | 467 | near (18%) | 31% | not yet | not yet |
| 2026-10 | 686 | hugecat1082.near (21%) | not yet | not yet | not yet |
Darker means a larger share still in use. A cohort can jump when one parent account deploys many sub-accounts; the largest parent and its share are shown for that reason.
Query and model
Computed by developer.new_contracts, developer.cohort_table (src/capture/models/developer.py) from the tables below.
contracts_daily (sql/contracts_daily.sql)
-- contracts_daily: one row per (block_date, receiving account) with a DEPLOY_CONTRACT or at least
-- one FUNCTION_CALL. Params: @start_date, @end_date (inclusive). unique_callers = distinct
-- predecessor accounts. Deploy-only rows (no call that day) are kept so that a contract deployed
-- today and first called tomorrow is still seen as new (F4); function_calls_received is 0 there.
SELECT
block_date AS `date`,
receipt_receiver_account_id AS contract_account,
COUNTIF(action_kind = 'DEPLOY_CONTRACT') AS deploys,
COUNTIF(action_kind = 'FUNCTION_CALL') AS function_calls_received,
COUNT(DISTINCT IF(action_kind = 'FUNCTION_CALL', receipt_predecessor_account_id, NULL))
AS unique_callers
FROM `bigquery-public-data.crypto_near_mainnet_us.receipt_actions`
WHERE block_date BETWEEN @start_date AND @end_date
AND action_kind IN ('DEPLOY_CONTRACT', 'FUNCTION_CALL')
GROUP BY block_date, receipt_receiver_account_id
HAVING deploys >= 1 OR function_calls_received >= 1
ORDER BY 1, 2
- contracts_daily.parquet · BigQuery public dataset · 2025-09-22 to 2026-11-01 · pulled 2026-11-02T08:05:43Z · sha256 cac2f0a3
Does developer activity lead Intents revenue?
Result: no detectable relationship (a null result). Lag 0 had the largest correlation in training (r=-0.72). In the test months it is r=0.90 on 5 pairs (permutation p=0.19). That cannot be told apart from chance with this few points; this is a null result.
Reported as it came out (CLAUDE.md rule 5). At lag 0 the test has 5 training and 5 test pairs of months, so it has little power; the null result says only that nothing can be told apart from chance yet. Correlation would not show cause in either direction.
Query and model
Computed by developer.lead_lag, developer.verdict (train/test split, permutation test) from the tables below.
contracts_daily (sql/contracts_daily.sql)
-- contracts_daily: one row per (block_date, receiving account) with a DEPLOY_CONTRACT or at least
-- one FUNCTION_CALL. Params: @start_date, @end_date (inclusive). unique_callers = distinct
-- predecessor accounts. Deploy-only rows (no call that day) are kept so that a contract deployed
-- today and first called tomorrow is still seen as new (F4); function_calls_received is 0 there.
SELECT
block_date AS `date`,
receipt_receiver_account_id AS contract_account,
COUNTIF(action_kind = 'DEPLOY_CONTRACT') AS deploys,
COUNTIF(action_kind = 'FUNCTION_CALL') AS function_calls_received,
COUNT(DISTINCT IF(action_kind = 'FUNCTION_CALL', receipt_predecessor_account_id, NULL))
AS unique_callers
FROM `bigquery-public-data.crypto_near_mainnet_us.receipt_actions`
WHERE block_date BETWEEN @start_date AND @end_date
AND action_kind IN ('DEPLOY_CONTRACT', 'FUNCTION_CALL')
GROUP BY block_date, receipt_receiver_account_id
HAVING deploys >= 1 OR function_calls_received >= 1
ORDER BY 1, 2
defillama_intents_daily (HTTP API)
https://api.llama.fi/summary/dexs/near-intents; https://api.llama.fi/summary/fees/near-intents; https://api.llama.fi/summary/fees/near-intents?dataType=dailyRevenue; https://api.llama.fi/summary/fees/near-intents?dataType=dailyHoldersRevenue
Data table
| Transform | Sample | Lag (months) | Pairs | Pearson r | Spearman | p | Note |
|---|---|---|---|---|---|---|---|
| levels | train | 0 | 5 | -0.72 | -0.90 | 0.13 | – |
| levels | train | 1 | 4 | -0.54 | -0.60 | 0.67 | – |
| levels | train | 2 | 3 | – | – | – | fewer than 4 pairs |
| levels | train | 3 | 2 | – | – | – | fewer than 4 pairs |
| levels | test | 0 | 5 | 0.90 | 0.10 | 0.19 | – |
| levels | test | 1 | 4 | -0.56 | -0.20 | 0.50 | – |
| levels | test | 2 | 3 | – | – | – | fewer than 4 pairs |
| levels | test | 3 | 2 | – | – | – | fewer than 4 pairs |
| diff | train | 0 | 4 | -0.51 | -0.60 | 0.58 | – |
| diff | train | 1 | 3 | – | – | – | fewer than 4 pairs |
| diff | train | 2 | 2 | – | – | – | fewer than 4 pairs |
| diff | train | 3 | 1 | – | – | – | fewer than 4 pairs |
| diff | test | 0 | 5 | 0.25 | 0.00 | 0.63 | – |
| diff | test | 1 | 4 | 0.25 | 0.00 | 0.79 | – |
| diff | test | 2 | 3 | – | – | – | fewer than 4 pairs |
| diff | test | 3 | 2 | – | – | – | fewer than 4 pairs |
- contracts_daily.parquet · BigQuery public dataset · 2025-09-22 to 2026-11-01 · pulled 2026-11-02T08:05:43Z · sha256 cac2f0a3
- defillama_intents_daily.parquet · DefiLlama API · 2024-12-10 to 2026-10-30 · pulled 2026-11-02T03:43:25Z · sha256 ae50ca9a