pulse_signed_batch

Pack: pulse-verity · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)

No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/pulse_signed_batch for the schema, then POST the same URL with its arguments for the data.

Signed index prices for up to 100 crypto assets in ONE call — each row carries its own signature you can verify individually with pulse_verify_print, offline, with no network call, not just the batch as a whole. Use this instead of looping pulse_signed_price: it is one request against the rate limit and every observation still carries its own signature, grade, venue count and interval. Symbols Pulse does not serve come back named in not_served rather than silently missing. Requires a Pulse API key via _apiKey. Example: pulse_signed_batch({ symbols: [“BTC”, “ETH”, “SOL”] }).

Parameters

NameTypeRequiredDescription
symbolsarrayyesUp to 100 tickers. A comma-separated string is also accepted.
itemsstringno

Example call

Arguments

{
  "symbols": [
    "BTC",
    "ETH"
  ]
}

curl

curl -X POST https://gateway.pipeworx.io/pulse-verity/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"pulse_signed_batch","arguments":{"symbols":["BTC","ETH"]}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('pulse_signed_batch', {
  "symbols": [
    "BTC",
    "ETH"
  ]
});

Response shape

Always returns: requested, returned, observations, each_row_signed, source

FieldTypeDescription
requestednumberCount of symbols requested
returnednumberCount of symbols Pulse actually served
observationsarrayOne signed print per served symbol, each independently verifiable
not_servedarray | nullSymbols requested but absent from Pulse’s response
each_row_signedstringReminder each observation is independently verifiable
sourcestringConstant: Pulse Verity Index (thepulse.markets)
not_served_notestringExplains why not_served exists and how to read it, when at least one requested symbol got no print.
Full JSON Schema
{
  "type": "object",
  "properties": {
    "requested": {
      "type": "number",
      "description": "Count of symbols requested"
    },
    "returned": {
      "type": "number",
      "description": "Count of symbols Pulse actually served"
    },
    "observations": {
      "type": "array",
      "description": "One signed print per served symbol, each independently verifiable",
      "items": {
        "type": "object",
        "properties": {
          "success": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Whether Pulse served this symbol"
          },
          "symbol": {
            "type": [
              "string",
              "null"
            ],
            "description": "Asset ticker, 2nd field of this row's canonical string"
          },
          "price": {
            "type": [
              "number",
              "null"
            ],
            "description": "Price as a float; priceText is what was actually signed"
          },
          "priceText": {
            "type": [
              "string",
              "null"
            ],
            "description": "Price exactly as served, 3rd field of the canonical string"
          },
          "at": {
            "type": [
              "string",
              "null"
            ],
            "description": "Observation timestamp, 4th field of the canonical string"
          },
          "grade": {
            "type": [
              "string",
              "null"
            ],
            "description": "consensus/blended/indicative, 5th field of the canonical string"
          },
          "signature": {
            "type": [
              "string",
              "null"
            ],
            "description": "Base64 ECDSA P-256 signature over this row's canonical string"
          },
          "kid": {
            "type": [
              "string",
              "null"
            ],
            "description": "Key id selecting which public key verifies this row's signature"
          },
          "sig": {
            "type": [
              "string",
              "null"
            ],
            "description": "Signing scheme tag, 1st field of the canonical string (pulse-index-v1)"
          },
          "engine": {
            "type": [
              "string",
              "null"
            ],
            "description": "Pulse's pricing engine identifier"
          },
          "sources": {
            "type": [
              "number",
              "null"
            ],
            "description": "Count of independent venues contributing"
          },
          "tier": {
            "type": [
              "string",
              "null"
            ],
            "description": "Same value as grade"
          },
          "confidence": {
            "type": [
              "number",
              "null"
            ],
            "description": "Pulse's confidence score for this observation"
          },
          "dispersionBps": {
            "type": [
              "number",
              "null"
            ],
            "description": "Spread across venues in basis points"
          },
          "interval": {
            "type": [
              "object",
              "null"
            ],
            "description": "Confidence interval bounds"
          },
          "cadence": {
            "type": [
              "object",
              "null"
            ],
            "description": "Update-frequency metadata for this asset"
          },
          "settleable": {
            "type": "boolean",
            "description": "True only for consensus/blended grades"
          },
          "grade_note": {
            "type": "string",
            "description": "Plain-English meaning of grade and whether it is settleable"
          }
        }
      }
    },
    "not_served": {
      "type": [
        "array",
        "null"
      ],
      "description": "Symbols requested but absent from Pulse's response",
      "items": {
        "type": "string"
      }
    },
    "each_row_signed": {
      "type": "string",
      "description": "Reminder each observation is independently verifiable"
    },
    "source": {
      "type": "string",
      "description": "Constant: Pulse Verity Index (thepulse.markets)"
    },
    "not_served_note": {
      "type": "string",
      "description": "Explains why not_served exists and how to read it, when at least one requested symbol got no print."
    }
  },
  "required": [
    "requested",
    "returned",
    "observations",
    "each_row_signed",
    "source"
  ]
}

Connect

Add this to your MCP client config — every tool in the catalog, including this one — or use one-click install buttons:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://pipeworx.io/mcp"
    }
  }
}
Connect to just the pulse-verity pack
{
  "mcpServers": {
    "pulse-verity": {
      "url": "https://gateway.pipeworx.io/pulse-verity/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build October 27, 2026