DAMO logo

DAMO for AI Agents and Developers

DAMO for AI Agents and Developers

DAMO for AI Agents and Developers

A fixed, versioned definition of market state — recorded at the time, never recomputed, verifiable by anyone.

DAMO describes the state of a crypto market across 10 fixed timeframes using exactly 4 deterministic states. Rule-based, not machine learning.

Market state data only. Not a trading signal. Not investment advice.

Connect DAMO in one minute

DAMO is a remote MCP server. No account, no API key, no sign-in. Free tier: 500 state values per client per UTC day.

Claude (web or desktop app)

  1. Open Settings, then Connectors, then Add custom connector.

  2. Name: DAMO. URL: https://api.damolive.com/mcp

  3. Leave authentication as no sign-in, add it, then press Connect.

  4. In a new chat, ask for a market state.

Claude Code

claude mcp add --transport http damo https://api.damolive.com/mcp

Other MCP clients

Any client that supports remote MCP servers (Streamable HTTP) can use this configuration:

{"mcpServers": {"damo": {"url": "https://api.damolive.com/mcp"}}}

Try asking

  • What is the DAMO VERIFIED state of BTC on the 4h timeframe, and which candle close is it from?

  • What is the forming 1h state of ETH right now? Is it final?

  • Show the DAMO state definitions.

DAMO describes market states. It is not investment advice.

Quick start

  1. Connect: add https://api.damolive.com/mcp to any MCP client that supports Streamable HTTP. No account or key.

  2. Ask: “What is the DAMO VERIFIED state of BTC on the 1h and 1d timeframes?”

  3. Your agent receives the recorded states with a citation line. See the example under “Connect an MCP client”.

Status (as of 2026-10-27)

Component

Status

DAMO API and MCP server (for AI agents and developers)

Released

DAMO WATCH (homepage, 44 assets)

Released

DAMO VERIFIED recording (44 assets)

BTCUSDT since 2026-09-28, other assets since 2026-10-10 (UTC). QNTUSDT recording stopped on 2026-10-26; its past records are kept.

Daily attestations on Base mainnet

Running since 2026-10-05

Market state input

DAMO composite since 2026-10-26 00:00 UTC (engine 1.1). Earlier records (engine 1.0) are kept as they were.

API and MCP

No account or API key. Free tier: 500 state values per client per UTC day (1 state value = 1 symbol × 1 timeframe). Every state response shows the remaining quota, a citation line and a source URL.

Fewer values: add timeframes=15m,1h (MCP: “timeframes”: [“15m”,”1h”]) and only those are returned and counted. Unchanged state: every state response carries an ETag. Send its value back as the query parameter if_none_match (for example ?timeframes=1h&if_none_match=YOUR_ETAG). If nothing changed the API answers 304 Not Modified with no body, and it is not counted against the quota. VERIFIED states change only when a candle closes.

HTTP API

OpenAPI

Remote MCP server (Streamable HTTP, MCP 2026-07-28 and earlier)

Agent skill file:

Official MCP Registry:

com.damolive/market-state

MCP tools

get_market_state, get_market_states, list_symbols, get_state_definitions

curl -s https://api.damolive.com/v1/market-state/BTCUSDT

Connect an MCP client

Any MCP client that supports Streamable HTTP can connect to the server URL. No key is required for the free tier.

Claude Code

claude mcp add --transport http damo https://api.damolive.com/mcp

JSON config (most MCP clients)

{
  "mcpServers": {
    "damo": { "url": "https://api.damolive.com/mcp" }
  }
}

Example

The agent calls get_market_state with:

{"symbol": "BTCUSDT", "timeframes": ["1h", "1d"]}

A real response, trimmed (2 state values counted):

{
  "symbol": "BTCUSDT", "layer": "verified", "as_of": "2026-10-14T01:40:03.748Z",
  "vector": [null, null, null, 2, null, null, 2, null, null, null],
  "states": {
    "1h": {"state": "weakening", "state_code": 2, "candle_status": "closed", "final": true,
           "candle_close": "2026-10-14T01:00:00Z", "engine_version": "1.0",
           "seq": 29610, "hash": "2952c6acb2dd92e9…", "stale": false},
    "1d": {"state": "weakening", "state_code": 2, "candle_status": "closed", "final": true,
           "candle_close": "2026-10-14T00:00:00Z", "engine_version": "1.0",
           "seq": 29532, "hash": "924b7042d054a872…", "stale": false}
  },
  "citation": "DAMO VERIFIED · BTCUSDT · recorded state as of 2026-10-14T01:40:03.748Z · damolive.com"
}

An answer that uses it cites the source line, for example:

“BTCUSDT is in the weakening state on both 1h and 1d (DAMO VERIFIED · BTCUSDT · recorded state as of 2026-10-14T01:40:03.748Z · damolive.com).”

The same request over HTTP:

curl -s "https://api.damolive.com/v1/market-state/BTCUSDT?timeframes=1h,1d"

Compact responses

Add format=compact to get only the symbol, layer, time, the 10-value vector, a short citation line and the remaining quota. It is counted the same way. The default full format adds per-timeframe seq, hash and engine version, for citing and checking records.

curl -s "https://api.damolive.com/v1/market-state/BTCUSDT?timeframes=1h,1d&format=compact"

Signed responses

Every state response is signed by DAMO with Ed25519, so an agent can check that the values came from DAMO and were not changed on the way. HTTP: header DAMO-Signature. MCP: tool result _meta. Add proof=1 to also get the signature in the body.

The signature shows who sent the values. That a VERIFIED value was recorded at the time is shown by its seq, hash and the daily attestation anchored on Base mainnet.

What DAMO is — and is not

  • Deterministic and rule-based. Not machine learning. The same closed candles always produce the same state.

  • A state description, not a trading signal. DAMO never executes trades and does not recommend buying or selling.

  • Not a price feed. DAMO publishes its own state outputs only. It does not redistribute exchange prices or candles.

The state model

Exactly four states. The codes are permanent and will never be reassigned.

Code

State

Color

1

bull_momentum

green

2

weakening

red

3

bear_momentum

blue

4

recovery

orange

Ten fixed timeframes, always in this order:

1m · 5m · 15m · 1h · 4h · 12h · 1d · 3d · 1w · 1M

A market’s full state is a 10-value vector in that order:

BTCUSDT → [4, 3, 3, 3, 3, 2, 2, 1, 1, 4]

The same candles always produce the same state. All times are UTC.

Two layers: VERIFIED and LIVE

DAMO VERIFIED — What DAMO recorded then.

The state of each confirmed candle, recorded once when the candle closes. Final. Never changed.

DAMO LIVE — What DAMO sees now.

The state of the candle still forming, with how far the candle has progressed (0.0–1.0). Provisional — it may change until the candle closes. Never written into the verified record.

Why both? A monthly candle that closed a month ago says little about today. LIVE shows the present; VERIFIED shows exactly what was known at each point in time.

How it can be checked

  • Append-only hash chain — every record carries the hash of the one before it

  • Real time only — states are recorded as candles close; past periods are never back-filled

  • Honest gaps — if the recorder was not running, the gap is recorded as a gap

  • Off-site daily backups — with a Merkle root for each UTC day

  • Daily attestation — a Merkle root of each UTC day’s records, linked to the previous day’s attestation

  • Anchored on Base mainnet — each daily attestation hash is written to a public, append-only contract. Nobody, including DAMO, can change or delete an anchored entry

  • Engine versions — a change to the state engine is released as a new engine version. Earlier records are never recomputed

  • Each VERIFIED value carries its seq and hash, so an answer that cites it can be checked later against the anchored daily attestation.

What does not change

  • The 4 state codes and the 10 timeframes are permanent. Existing codes never change meaning.

  • Any change to the state engine is released as a new engine version. Every VERIFIED value carries its engine version.

  • Records made with an earlier engine version are kept unchanged and are never recomputed.

Not provided

  • Prices or candles. DAMO publishes its own state outputs only.

  • Order book, funding rates or intrabar events.

  • Forecasts, trading signals or investment advice. DAMO never executes trades.

  • Bulk historical exports. The full recorded history is not offered as a download.

Verify it yourself

Anchor contract on Base mainnet (source code verified on Basescan):

0x67FeC2A19B3e3eb26d80Ad87D19e33dfc39F5766

First anchored days for BTCUSDT: 2026-09-28 to 2026-10-04. New days are anchored daily after the UTC day closes. All 44 assets are anchored daily from 2026-10-10 (UTC).

Anyone can read the contract directly: heads(symbol), attestationOf(symbol, day), isAnchored(symbol, day, attestationHash).

Markets

44 assets, including BTCUSDT. Every asset is recorded with the same engine, the same four states and the same ten timeframes. Full list and selection criteria: Coverage.

Since 2026-10-26 00:00 UTC, market states are computed from the DAMO composite, built from several public crypto perpetual futures markets. The calculation and settings did not change; only the input did (engine version 1.1). Records made before that time (engine version 1.0, single reference market) are kept unchanged and are never recomputed. DAMO publishes its own state outputs only, not raw prices or candles. DAMO does not accept listing fees.

Evaluate it yourself

DAMO does not claim that its states predict prices. The recorded history exists so that anyone — people or AI systems — can evaluate its usefulness independently.

Machine-readable summary

Market State. One Glance.

Educational purposes only.

Support

Response time: Within 24 hours.

DAMO provides market state data only. It is not investment advice. DAMO provides market state visualization tools and educational content only. DAMO describes market state; it does not tell users or agents what trade to make. Nothing on this website constitutes financial, investment, legal or tax advice. Trading cryptocurrencies and financial markets involves substantial risk. Past performance does not guarantee future results. Users are solely responsible for their own investment decisions.

© 2026 DAMO. All rights reserved.