FETCH402
← Protocol index

Resource / 314

healthy

crypto-market-signal.

Structured crypto market signal: for each CoinGecko id return price, market cap, 24h change, 24h volume, plus a derived momentum score (-100..100), a bullish/neutral/bearish signal, and a volatility flag — enriched data an agent ingests in a trading/research loop without computing it itself. Input: ids (comma-separated).

Eligibility
probeable
Failures
0
Last quote
2026-08-12 22:05:10 UTC
Last probe
2026-08-12 22:05:10 UTC
Payment requirements / accepts[] 1 options
State Network Scheme Atomic amount Asset payTo / untrusted
active eip155:8453 exact 5000 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x435afaC555fe115f18e657E49960063c12C6AEd0

All advertised payment options are stored. Base (`eip155:8453`) is the operational network for ranking and canaries; non-Base options remain visible for transparency.

Probe evidence 1 recent
healthy 2026-08-12 22:05:10 UTC GET · HTTP 402 · 56ms · accepts 1 · base 1 ok
Request
GET https://x402.charliemorrison.dev/signal
Robots
error
Note
robots_error:{:robots_http_status, 404};http_402;accepts=1;base=1
Accepts fingerprint
8653e3e4d5b4a1e08e71f0e13034a031a22d9e665039b512ee1c30e53f8d3f49

Accepts snapshot

[
  {
    "amount": "5000",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "assetTransferMethod": null,
    "extra": {
      "name": "USD Coin",
      "version": "2"
    },
    "maxTimeoutSeconds": 60,
    "network": "eip155:8453",
    "payTo": "0x435afaC555fe115f18e657E49960063c12C6AEd0",
    "paymentFlow": null,
    "raw": {
      "amount": "5000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 60,
      "max_timeout_seconds": 60,
      "network": "eip155:8453",
      "payTo": "0x435afaC555fe115f18e657E49960063c12C6AEd0",
      "pay_to": "0x435afaC555fe115f18e657E49960063c12C6AEd0",
      "scheme": "exact"
    },
    "scheme": "exact"
  }
]

PaymentRequired raw

{
  "accepts": [
    {
      "amount": "5000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 60,
      "network": "eip155:8453",
      "payTo": "0x435afaC555fe115f18e657E49960063c12C6AEd0",
      "scheme": "exact"
    }
  ],
  "error": "Payment required",
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "method": "GET",
          "queryParams": {
            "ids": "bitcoin,ethereum,solana"
          },
          "type": "http"
        },
        "output": {
          "example": {
            "assets": [
              {
                "change_24h_pct": 1.6,
                "id": "bitcoin",
                "momentum": 31,
                "price_usd": 65000,
                "signal": "neutral",
                "volatility": "calm"
              }
            ],
            "count": 1,
            "source": "coingecko"
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "queryParams": {
                "properties": {
                  "ids": {
                    "description": "Comma-separated CoinGecko ids, max 25",
                    "type": "string"
                  }
                },
                "required": [
                  "ids"
                ],
                "type": "object"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "properties": {
                  "assets": {
                    "items": {
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "count": {
                    "type": "number"
                  },
                  "source": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "resource": {
    "description": "Structured crypto market signal: for each CoinGecko id return price, market cap, 24h change, 24h volume, plus a derived momentum score (-100..100), a bullish/neutral/bearish signal, and a volatility flag — enriched data an agent ingests in a trading/research loop without computing it itself. Input: ids (comma-separated).",
    "mimeType": "application/json",
    "serviceName": "crypto-market-signal",
    "tags": [
      "crypto",
      "market-data",
      "price",
      "signal",
      "trading",
      "data",
      "agent-tools"
    ],
    "url": "https://x402.charliemorrison.dev/signal"
  },
  "x402Version": 2
}

Response headers

{
  "alt-svc": "h3=\":443\"; ma=2592000",
  "content-length": "2",
  "content-type": "application/json; charset=utf-8",
  "date": "Wed, 12 Aug 2026 22:05:10 GMT",
  "etag": "W/\"2-vyGp6PvFo4RvsFtPoIWeCReyIC8\"",
  "payment-required": "eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQYXltZW50IHJlcXVpcmVkIiwicmVzb3VyY2UiOnsidXJsIjoiaHR0cHM6Ly94NDAyLmNoYXJsaWVtb3JyaXNvbi5kZXYvc2lnbmFsIiwiZGVzY3JpcHRpb24iOiJTdHJ1Y3R1cmVkIGNyeXB0byBtYXJrZXQgc2lnbmFsOiBmb3IgZWFjaCBDb2luR2Vja28gaWQgcmV0dXJuIHByaWNlLCBtYXJrZXQgY2FwLCAyNGggY2hhbmdlLCAyNGggdm9sdW1lLCBwbHVzIGEgZGVyaXZlZCBtb21lbnR1bSBzY29yZSAoLTEwMC4uMTAwKSwgYSBidWxsaXNoL25ldXRyYWwvYmVhcmlzaCBzaWduYWwsIGFuZCBhIHZvbGF0aWxpdHkgZmxhZyDigJQgZW5yaWNoZWQgZGF0YSBhbiBhZ2VudCBpbmdlc3RzIGluIGEgdHJhZGluZy9yZXNlYXJjaCBsb29wIHdpdGhvdXQgY29tcHV0aW5nIGl0IGl0c2VsZi4gSW5wdXQ6IGlkcyAoY29tbWEtc2VwYXJhdGVkKS4iLCJtaW1lVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLCJzZXJ2aWNlTmFtZSI6ImNyeXB0by1tYXJrZXQtc2lnbmFsIiwidGFncyI6WyJjcnlwdG8iLCJtYXJrZXQtZGF0YSIsInByaWNlIiwic2lnbmFsIiwidHJhZGluZyIsImRhdGEiLCJhZ2VudC10b29scyJdfSwiYWNjZXB0cyI6W3sic2NoZW1lIjoiZXhhY3QiLCJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMiLCJhbW91bnQiOiI1MDAwIiwiYXNzZXQiOiIweDgzMzU4OWZDRDZlRGI2RTA4ZjRjN0MzMkQ0ZjcxYjU0YmRBMDI5MTMiLCJwYXlUbyI6IjB4NDM1YWZhQzU1NWZlMTE1ZjE4ZTY1N0U0OTk2MDA2M2MxMkM2QUVkMCIsIm1heFRpbWVvdXRTZWNvbmRzIjo2MCwiZXh0cmEiOnsibmFtZSI6IlVTRCBDb2luIiwidmVyc2lvbiI6IjIifX1dLCJleHRlbnNpb25zIjp7ImJhemFhciI6eyJpbmZvIjp7ImlucHV0Ijp7InR5cGUiOiJodHRwIiwibWV0aG9kIjoiR0VUIiwicXVlcnlQYXJhbXMiOnsiaWRzIjoiYml0Y29pbixldGhlcmV1bSxzb2xhbmEifX0sIm91dHB1dCI6eyJ0eXBlIjoianNvbiIsImV4YW1wbGUiOnsic291cmNlIjoiY29pbmdlY2tvIiwiY291bnQiOjEsImFzc2V0cyI6W3siaWQiOiJiaXRjb2luIiwicHJpY2VfdXNkIjo2NTAwMCwiY2hhbmdlXzI0aF9wY3QiOjEuNiwic2lnbmFsIjoibmV1dHJhbCIsIm1vbWVudHVtIjozMSwidm9sYXRpbGl0eSI6ImNhbG0ifV19fX0sInNjaGVtYSI6eyIkc2NoZW1hIjoiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWEiLCJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJpbnB1dCI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJ0eXBlIjp7InR5cGUiOiJzdHJpbmciLCJjb25zdCI6Imh0dHAifSwibWV0aG9kIjp7InR5cGUiOiJzdHJpbmciLCJlbnVtIjpbIkdFVCJdfSwicXVlcnlQYXJhbXMiOnsidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsiaWRzIjp7InR5cGUiOiJzdHJpbmciLCJkZXNjcmlwdGlvbiI6IkNvbW1hLXNlcGFyYXRlZCBDb2luR2Vja28gaWRzLCBtYXggMjUifX0sInJlcXVpcmVkIjpbImlkcyJdfX0sInJlcXVpcmVkIjpbInR5cGUiLCJtZXRob2QiXSwiYWRkaXRpb25hbFByb3BlcnRpZXMiOmZhbHNlfSwib3V0cHV0Ijp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7InR5cGUiOnsidHlwZSI6InN0cmluZyJ9LCJleGFtcGxlIjp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7InNvdXJjZSI6eyJ0eXBlIjoic3RyaW5nIn0sImNvdW50Ijp7InR5cGUiOiJudW1iZXIifSwiYXNzZXRzIjp7InR5cGUiOiJhcnJheSIsIml0ZW1zIjp7InR5cGUiOiJvYmplY3QifX19fX0sInJlcXVpcmVkIjpbInR5cGUiXX19LCJyZXF1aXJlZCI6WyJpbnB1dCJdfX19fQ==",
  "via": "1.1 Caddy",
  "x-powered-by": "Express"
}

Response body

{}

Request headers

{
  "accept": "*/*",
  "user-agent": "Fetch402Bot/0.1 (+https://fetch402.com/crawler; contact: crawler@fetch402.com)"
}

Machine contract

Schemas.

InputJSON
{
  "method": "GET",
  "queryParams": {
    "ids": "bitcoin,ethereum,solana"
  },
  "type": "http"
}
OutputJSON
{
  "example": {
    "assets": [
      {
        "change_24h_pct": 1.6,
        "id": "bitcoin",
        "momentum": 31,
        "price_usd": 65000,
        "signal": "neutral",
        "volatility": "calm"
      }
    ],
    "count": 1,
    "source": "coingecko"
  },
  "type": "json"
}