Dudelytics

App · 8 actions

Track productive crypto from a workflow. Dudelytics publishes the DPMI, an index of 30 crypto assets that do real work (gas, staking, fees), plus sector indices for DeFi, AI, real-world assets and more, a daily comparison with Bitcoin and the whole market, a Fear & Greed score and the Dude-VIX market-stress score. Read the latest levels, pull history over any dates, and see what each index holds.

Actions

ActionWhat it does
Get daily benchmarkCompare the DPMI with Bitcoin and the whole crypto market, one row a day at 00:00 UTC, all rebased to 100 on the same start day.
Get Fear & Greed scoreGet DPMI Fear & Greed, a 0-100 sentiment score for the productive crypto market, with its 24-hour, 7-day and 30-day readings and the market signals behind it.
Get index historyGet a DPMI index's level over a date range, one point per day or hour (the closing level), with the range's change, high and low.
Get index holdingsList the top-30 crypto assets in the main DPMI or DPMI Holder Quality, largest first, with each one's weight in the index, price, market value and category.
Get index levelGet the current level of a DPMI index (the main productive crypto index, Holder Quality, or a sector such as DeFi or AI) with its 24-hour, 7-day and 30-day changes.
Get market stress (Dude-VIX)Get Dude-VIX, a 0-100 market-stress score built from recent volatility, sharp drops, how closely sectors move together and drawdowns, with its label (Calm to Extreme stress) and data quality.
Get market stress historyGet Dude-VIX market-stress scores over a date range, one per day or hour, with the range's high, low and average.
List all index levelsList every index in the DPMI family side by side: the main DPMI, Holder Quality and the seven sector indices, each with its level and changes.

Get daily benchmark

Compare the DPMI with Bitcoin and the whole crypto market, one row a day at 00:00 UTC, all rebased to 100 on the same start day. Says which of the three has done best.

Inputs

Start datestart_datedate
The first day of the benchmark to include (UTC). Leave it empty for 30 days before the end date.
End dateend_datedate
The last day to include (UTC). Leave it empty for today.

Outputs

base_datetext
The day every series was rebased to 100.
complete_daysnumber
How many complete days the benchmark has.
countnumber
How many days are returned.
dayslist
Each day in the range.
end_datetext
The last day covered.
latestobject
The most recent day.
leadertext
Which has done best since the base date: DPMI, Bitcoin or Total crypto market.
methodology_versiontext
The benchmark's methodology version.
next_updatetext
When the next daily row is due (UTC).
source_urltext
The Dudelytics data file this answer was read from.
start_datetext
The first day covered.
Example output
{
  "base_date": "2026-09-01",
  "complete_days": 44,
  "count": 1,
  "days": [
    {
      "btc_normalized": 105.4087,
      "btc_usd": 81603.65,
      "complete": true,
      "date": "2026-10-15",
      "dpmi": 128.863006,
      "dpmi_normalized": 104.7706,
      "eth_usd": 2419.69,
      "total_market_cap_usd": 2758150441503.0,
      "total_market_normalized": 105.1464
    }
  ],
  "end_date": "2026-10-15",
  "latest": {
    "btc_normalized": 105.4087,
    "btc_usd": 81603.65,
    "complete": true,
    "date": "2026-10-15",
    "dpmi": 128.863006,
    "dpmi_normalized": 104.7706,
    "eth_usd": 2419.69,
    "total_market_cap_usd": 2758150441503.0,
    "total_market_normalized": 105.1464
  },
  "leader": "Bitcoin",
  "methodology_version": "DPMI-BENCH-1.3",
  "next_update": "2026-10-16T00:00:00Z",
  "source_url": "https://dudelytics.com/data/dpmi/benchmark.json",
  "start_date": "2026-10-15"
}

Get Fear & Greed score

Get DPMI Fear & Greed, a 0-100 sentiment score for the productive crypto market, with its 24-hour, 7-day and 30-day readings and the market signals behind it.

Inputs

None.

Outputs

componentslist
The market signals behind the 24-hour score.
coverage_percentnumber
How much of the input data was available, %.
horizonslist
The three time horizons blended into the score.
labeltext
Extreme fear, Fear, Neutral, Greed or Extreme greed.
maturity_percentnumber
How mature the time model is, in %.
methodology_versiontext
The methodology version.
pulse_24h_labeltext
The label for the 24-hour score.
pulse_24h_scorenumber
The short-term score from the last 24 hours.
regime_30d_scorenumber
The 30-day regime score.
scorenumber
The score from 0 (extreme fear) to 100 (extreme greed).
source_urltext
The Dudelytics data file this answer was read from.
timestamptext
When the score was calculated (UTC).
trend_7d_scorenumber
The 7-day trend score.
Example output
{
  "components": [
    {
      "available": true,
      "name": "Market breadth",
      "score": 59.87,
      "weight_percent": 30.0
    },
    {
      "available": true,
      "name": "Volume impulse",
      "score": 84.52,
      "weight_percent": 10.0
    }
  ],
  "coverage_percent": 100.0,
  "horizons": [
    {
      "label": "Greed",
      "name": "24-hour pulse",
      "readiness_percent": 100.0,
      "score": 61.04
    },
    {
      "label": "Neutral",
      "name": "7-day trend",
      "readiness_percent": 100.0,
      "score": 47.81
    },
    {
      "label": "Neutral",
      "name": "30-day regime",
      "readiness_percent": 100.0,
      "score": 51.43
    }
  ],
  "label": "Neutral",
  "maturity_percent": 100.0,
  "methodology_version": "DPMI-FG-0.2-TEMPORAL-WARMUP",
  "pulse_24h_label": "Greed",
  "pulse_24h_score": 61.04,
  "regime_30d_score": 51.43,
  "score": 53.35,
  "source_url": "https://dudelytics.com/data/dpmi/fear-greed.php",
  "timestamp": "2026-10-15T18:02:08Z",
  "trend_7d_score": 47.81
}

Get index history

Get a DPMI index's level over a date range, one point per day or hour (the closing level), with the range's change, high and low. Reconstructed history from before an index went live is left out unless you ask for it.

Inputs

Indexindextext
Which index to read: the main DPMI, DPMI Holder Quality, or one of the sector indices such as DeFi, AI or Real-world assets (RWA).Default: dpmi.
Start datestart_datedate
The first day of history to include (UTC). Leave it empty for 30 days before the end date.
End dateend_datedate
The last day to include (UTC). Leave it empty for today.
One point perintervaltext
How finely to sample. Daily and hourly keep the last reading in each day or hour, which is its closing value.One of: daily (Day), hourly (Hour), all (Every reading (about 5-10 min)). Default: daily.
Include reconstructed historyinclude_backfilltrue/false
Also return the main DPMI's backfilled week before it went live (calculated with today's basket, so not a real historical record). Each point says which it is.Default: false.
Most pointslimitnumber
The most points to return. When there are more, the most recent are kept.From 1 to 5000. Default: 500.

Outputs

change_percentnumber
Change from the first to the last level, in %.
countnumber
How many points are returned.
end_datetext
The last day covered.
first_valuenumber
The first level in the range.
highnumber
The highest level in the range.
includes_backfilltrue/false
Whether any returned point is reconstructed.
indextext
The index's key, such as dpmi or defi, ready for the Index field of Get index level or Get index history.
intervaltext
daily, hourly or all.
last_valuenumber
The last level in the range.
lownumber
The lowest level in the range.
nametext
The index's name.
pointslist
The levels, oldest first.
source_urltext
The Dudelytics data file this answer was read from.
start_datetext
The first day covered.
total_matchingnumber
How many points matched, before the limit.
truncatedtrue/false
Whether the limit dropped the oldest points.
Example output
{
  "change_percent": -1.5737,
  "count": 3,
  "end_date": "2026-10-15",
  "first_value": 131.394804,
  "high": 131.394804,
  "includes_backfill": false,
  "index": "dpmi",
  "interval": "daily",
  "last_value": 129.32683,
  "low": 128.863006,
  "name": "DPMI (Dudelytics Productive Market Index)",
  "points": [
    {
      "date": "2026-10-13",
      "reconstructed": false,
      "timestamp": "2026-10-13T23:57:04Z",
      "value": 131.394804
    },
    {
      "date": "2026-10-14",
      "reconstructed": false,
      "timestamp": "2026-10-14T23:52:07Z",
      "value": 128.863006
    },
    {
      "date": "2026-10-15",
      "reconstructed": false,
      "timestamp": "2026-10-15T18:02:08Z",
      "value": 129.32683
    }
  ],
  "source_url": "https://dudelytics.com/data/dpmi/history.json",
  "start_date": "2026-10-13",
  "total_matching": 3,
  "truncated": false
}

Get index holdings

List the top-30 crypto assets in the main DPMI or DPMI Holder Quality, largest first, with each one's weight in the index, price, market value and category.

Inputs

Indexindextext
Whose basket to list. Only the main DPMI and DPMI Holder Quality publish their holdings.One of: dpmi (DPMI (main index)), dpmi_hq (DPMI Holder Quality). Default: dpmi.
How many assetslimitnumber
How many holdings to return, largest first.From 1 to 30. Default: 30.

Outputs

as_oftext
When prices and weights were last updated (UTC).
assetslist
The basket, largest first.
composition_versiontext
The basket's version.
countnumber
How many assets are returned.
indextext
The index's key, such as dpmi or defi, ready for the Index field of Get index level or Get index history.
methodology_versiontext
The methodology version.
nametext
The index's name.
rebalanced_attext
When the basket was last rebalanced (UTC).
source_urltext
The Dudelytics data file this answer was read from.
top_assettext
The largest holding's name.
top_weight_percentnumber
The largest holding's weight, in %.
total_assetsnumber
How many assets the basket holds.
Example output
{
  "as_of": "2026-10-15T18:02:08Z",
  "assets": [
    {
      "categories": [
        "Smart Contract Platforms / Layer 1"
      ],
      "coingecko_id": "ethereum",
      "eligible": true,
      "market_cap_usd": 298487469270.0,
      "name": "Ethereum",
      "price_usd": 2442.43,
      "rank": 1,
      "symbol": "ETH",
      "target_weight_percent": 15.0,
      "weight_percent": 14.9695
    }
  ],
  "composition_version": "DPMI-1.0_20261001T000232Z",
  "count": 1,
  "index": "dpmi",
  "methodology_version": "DPMI-1.0",
  "name": "DPMI (Dudelytics Productive Market Index)",
  "rebalanced_at": "2026-10-01T00:02:06Z",
  "source_url": "https://dudelytics.com/data/dpmi/composition.json",
  "top_asset": "Ethereum",
  "top_weight_percent": 14.9695,
  "total_assets": 30
}

Get index level

Get the current level of a DPMI index (the main productive crypto index, Holder Quality, or a sector such as DeFi or AI) with its 24-hour, 7-day and 30-day changes. Includes a ready-made source line for quoting the number.

Inputs

Indexindextext
Which index to read: the main DPMI, DPMI Holder Quality, or one of the sector indices such as DeFi, AI or Real-world assets (RWA).Default: dpmi.

Outputs

change_1y_percentnumber
Change over the last year, in percent. Empty until the index has that much history.
change_24h_percentnumber
Change over the last 24 hours, in percent.
change_30d_percentnumber
Change over the last 30 days, in percent.
change_7d_percentnumber
Change over the last 7 days, in percent.
change_90d_percentnumber
Change over the last 90 days, in percent. Empty until the index has that much history.
citationtext
A ready-made source line in the form Dudelytics asks for when you quote the level.
component_countnumber
How many assets a sector index holds. Empty for the main indices.
indextext
The index's key, such as dpmi or defi, ready for the Index field of Get index level or Get index history.
index_idtext
Dudelytics' own code for it, such as DPMI or DPMI-DEFI.
kindtext
'Main index' or 'Sector index'.
live_sincetext
When real observations of this index began (UTC).
methodology_versiontext
The methodology version behind the level.
nametext
The index's name.
reconstructed_windowslist
Change windows that still reach back into reconstructed (backfilled) history rather than real observations. Usually empty.
source_urltext
The Dudelytics data file this answer was read from.
statustext
Whether the index is live.
timestamptext
When that level was calculated (UTC).
valuenumber
The index level now. Each index started at 100.
Example output
{
  "change_1y_percent": null,
  "change_24h_percent": 0.6123,
  "change_30d_percent": 3.8076,
  "change_7d_percent": 1.2215,
  "change_90d_percent": null,
  "citation": "Dudelytics (2026): DPMI \u2013 Dudelytics Productive Market Index. Data timestamp: 2026-10-15, 18:02 UTC, index level: 129.33, methodology: DPMI-1.0. Accessed 2026-10-15, 18:10 UTC. Source: https://dudelytics.com/en/dpmi/",
  "component_count": null,
  "index": "dpmi",
  "index_id": "DPMI",
  "kind": "Main index",
  "live_since": "2026-08-17T16:06:32Z",
  "methodology_version": "DPMI-1.0",
  "name": "DPMI (Dudelytics Productive Market Index)",
  "reconstructed_windows": [],
  "source_url": "https://dudelytics.com/data/dpmi/current.json",
  "status": "live",
  "timestamp": "2026-10-15T18:02:08Z",
  "value": 129.32683
}

Get market stress (Dude-VIX)

Get Dude-VIX, a 0-100 market-stress score built from recent volatility, sharp drops, how closely sectors move together and drawdowns, with its label (Calm to Extreme stress) and data quality.

Inputs

None.

Outputs

componentslist
The four stress signals behind the score.
data_qualitytext
Normal, Limited or Insufficient.
freshtrue/false
Whether the score is up to date.
labeltext
Calm, Normal, Elevated tension, High stress or Extreme stress.
methodology_versiontext
The methodology version.
quality_noteslist
Why the data quality is limited. Empty when it is normal.
scorenumber
The stress score from 0 (calm) to 100 (extreme stress).
source_urltext
The Dudelytics data file this answer was read from.
statustext
Whether the score is live.
timestamptext
When the score was calculated (UTC).
Example output
{
  "components": [
    {
      "name": "Realized volatility (24h)",
      "score": 100.0,
      "weight_percent": 35.0
    },
    {
      "name": "Downside shock (24h)",
      "score": 0.0,
      "weight_percent": 25.0
    },
    {
      "name": "Sector correlation (48h)",
      "score": 90.68,
      "weight_percent": 20.0
    },
    {
      "name": "Drawdown pressure (7d)",
      "score": 64.21,
      "weight_percent": 20.0
    }
  ],
  "data_quality": "Limited",
  "fresh": true,
  "label": "High stress",
  "methodology_version": "DVIX-0.2",
  "quality_notes": [
    "long observation gap in seven day high"
  ],
  "score": 65.98,
  "source_url": "https://dudelytics.com/data/dpmi/dvix.php",
  "status": "live",
  "timestamp": "2026-10-15T18:02:08Z"
}

Get market stress history

Get Dude-VIX market-stress scores over a date range, one per day or hour, with the range's high, low and average.

Inputs

Start datestart_datedate
The first day of scores to include (UTC). Leave it empty for 30 days before the end date.
End dateend_datedate
The last day to include (UTC). Leave it empty for today.
One point perintervaltext
How finely to sample. Daily and hourly keep the last reading in each day or hour, which is its closing value.One of: daily (Day), hourly (Hour), all (Every reading (about 5-10 min)). Default: daily.
Most pointslimitnumber
The most points to return. When there are more, the most recent are kept.From 1 to 5000. Default: 500.

Outputs

average_scorenumber
The average score in the range.
countnumber
How many points are returned.
end_datetext
The last day covered.
highest_scorenumber
The highest score in the range.
intervaltext
daily, hourly or all.
latest_scorenumber
The last score in the range.
lowest_scorenumber
The lowest score in the range.
pointslist
The scores, oldest first.
source_urltext
The Dudelytics data file this answer was read from.
start_datetext
The first day covered.
total_matchingnumber
How many points matched, before the limit.
truncatedtrue/false
Whether the limit dropped the oldest points.
Example output
{
  "average_score": 62.05,
  "count": 2,
  "end_date": "2026-10-15",
  "highest_score": 65.98,
  "interval": "daily",
  "latest_score": 65.98,
  "lowest_score": 58.12,
  "points": [
    {
      "date": "2026-10-14",
      "label": "Elevated tension",
      "methodology_version": "DVIX-0.2",
      "score": 58.12,
      "timestamp": "2026-10-14T23:52:07Z"
    },
    {
      "date": "2026-10-15",
      "label": "High stress",
      "methodology_version": "DVIX-0.2",
      "score": 65.98,
      "timestamp": "2026-10-15T18:02:08Z"
    }
  ],
  "source_url": "https://dudelytics.com/data/dpmi/dvix.php?view=history",
  "start_date": "2026-10-14",
  "total_matching": 2,
  "truncated": false
}

List all index levels

List every index in the DPMI family side by side: the main DPMI, Holder Quality and the seven sector indices, each with its level and changes. Rank them by 24-hour, 7-day or 30-day change to see which corner of the market is leading.

Inputs

Includeincludetext
Which indices to list.One of: all (All indices), main (Main DPMI and Holder Quality), sectors (Sector indices). Default: all.
Ordersorttext
How to order the list. A change ranking puts the biggest gainer first.One of: family (Dudelytics' order), change_24h (Biggest 24h gain), change_7d (Biggest 7-day gain), change_30d (Biggest 30-day gain), level (Highest level). Default: family.

Outputs

besttext
The name of the index at the top of the ranking. Empty when the list is in family order.
countnumber
How many indices are listed.
includetext
Which indices were included: all, main or sectors.
indiceslist
Each index, in the order asked.
sorttext
The order they are in.
source_urltext
The Dudelytics data file this answer was read from.
timestamptext
The newest level's time (UTC).
Example output
{
  "best": "DPMI DePIN",
  "count": 2,
  "include": "all",
  "indices": [
    {
      "change_1y_percent": null,
      "change_24h_percent": 1.8733,
      "change_30d_percent": 39.4049,
      "change_7d_percent": 4.9843,
      "change_90d_percent": null,
      "component_count": 17,
      "index": "depin",
      "index_id": "DPMI-DEPIN",
      "kind": "Sector index",
      "live_since": "2026-08-20T19:45:21Z",
      "methodology_version": "DPMI-SF-1.1",
      "name": "DPMI DePIN",
      "reconstructed_windows": [],
      "source_url": "https://dudelytics.com/data/dpmi/sector-family.php",
      "status": "live",
      "timestamp": "2026-10-15T18:02:08Z",
      "value": 161.345717
    },
    {
      "change_1y_percent": null,
      "change_24h_percent": 0.6123,
      "change_30d_percent": 3.8076,
      "change_7d_percent": 1.2215,
      "change_90d_percent": null,
      "component_count": null,
      "index": "dpmi",
      "index_id": "DPMI",
      "kind": "Main index",
      "live_since": "2026-08-17T16:06:32Z",
      "methodology_version": "DPMI-1.0",
      "name": "DPMI (Dudelytics Productive Market Index)",
      "reconstructed_windows": [],
      "source_url": "https://dudelytics.com/data/dpmi/current.json",
      "status": "live",
      "timestamp": "2026-10-15T18:02:08Z",
      "value": 129.32683
    }
  ],
  "sort": "change_30d",
  "source_url": "https://dudelytics.com/en/dpmi/data/",
  "timestamp": "2026-10-15T18:02:08Z"
}

On this page