pulse_verify_print
Pack: pulse-verity · Endpoint: https://gateway.pipeworx.io/pulse-verity/mcp
No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/pulse_verify_print for the schema, then POST the same URL with its arguments for the data.
Check whether a Pulse signed price print is authentic and unaltered. Pass a print back exactly as a Pulse tool returned it and this recomputes the ECDSA P-256 / SHA-256 signature over the canonical string, returning valid true or false plus the exact bytes it checked. The verification is computed here, not asked of Pulse, so Pulse cannot vouch for a print it never signed and an offline or compromised source cannot turn an invalid print into a valid one. Detects any alteration, including a single changed digit of price or a one-millisecond shift in the timestamp. Needs NO API key. Example: pulse_verify_print({ symbol: “BTC”, priceText: “76051.0676303142”, price: 76051.0676303142, at: “2026-09-16T23:39:30.524Z”, grade: “consensus”, signature: “wiD005d9…”, kid: “pvi-Sl40p5Gj2t_-JyKUhxyg” }).
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
symbol | string | yes | From the print, unchanged. |
price | number | no | From the print. Used only if priceText is absent. |
priceText | string | no | The price EXACTLY as Pulse served it. This is what was signed — prefer it always. |
at | string | yes | From the print, unchanged. A 1ms difference invalidates the signature. |
grade | string | yes | From the print: consensus, blended or indicative. |
signature | string | yes | Base64 signature from the print. |
kid | string | no | Key id from the print; selects which public key to check against. |
sig | string | no | Scheme tag from the print (pulse-index-v1). |
Example call
Arguments
{
"symbol": "BTC",
"price": 76153.41417523642,
"priceText": "76153.41417523642",
"at": "2026-09-16T23:46:02.683Z",
"grade": "consensus",
"signature": "VynRCj8QOezyoqIaV6d7gOpZ9DxrMiwXv4Mms+RkgbFbzuRJYbwdMhgHZdMTBSikSIdk7Ph7xVGPD9ovLrWDHA==",
"kid": "pvi-Sl40p5Gj2t_-JyKUhxyg"
}
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_verify_print","arguments":{"symbol":"BTC","price":76153.41417523642,"priceText":"76153.41417523642","at":"2026-09-16T23:46:02.683Z","grade":"consensus","signature":"VynRCj8QOezyoqIaV6d7gOpZ9DxrMiwXv4Mms+RkgbFbzuRJYbwdMhgHZdMTBSikSIdk7Ph7xVGPD9ovLrWDHA==","kid":"pvi-Sl40p5Gj2t_-JyKUhxyg"}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('pulse_verify_print', {
"symbol": "BTC",
"price": 76153.41417523642,
"priceText": "76153.41417523642",
"at": "2026-09-16T23:46:02.683Z",
"grade": "consensus",
"signature": "VynRCj8QOezyoqIaV6d7gOpZ9DxrMiwXv4Mms+RkgbFbzuRJYbwdMhgHZdMTBSikSIdk7Ph7xVGPD9ovLrWDHA==",
"kid": "pvi-Sl40p5Gj2t_-JyKUhxyg"
});
Connect
Add this to your MCP client config, or use one-click install buttons:
{
"mcpServers": {
"pulse-verity": {
"url": "https://gateway.pipeworx.io/pulse-verity/mcp"
}
}
}
See Getting Started for client-specific install steps.