pulse_key_ring
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_key_ring for the schema, then POST the same URL with its arguments for the data.
The public keys Pulse signs its price prints with, as PEM and JWK, plus the signing algorithm and the exact canonical string format — everything needed to verify a signed print yourself, OFFLINE, with no network call to Pulse. Use it to write your own verifier, or to audit what pulse_verify_print (this pack’s ready-made offline checker) is checking against. Needs NO API key. Example: pulse_key_ring({}).
Example call
Arguments
{}
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_key_ring","arguments":{}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('pulse_key_ring', {});
Response shape
Always returns: verificationKeys, note, usage, keyless, source
| Field | Type | Description |
|---|---|---|
success | boolean | null | Pulse’s own success flag for this response |
algorithm | string | null | Signing algorithm: ECDSA P-256, SHA-256, IEEE-P1363, base64 |
canonical | string | null | Canonical string template with real newlines, fields in signed order |
canonicalEscaped | string | null | Same template with newlines rendered literally, on one line |
canonicalExample | string | null | A worked canonical string example |
keyMode | string | null | Pulse’s key-storage mode, e.g. persisted |
activeKid | string | null | The key id currently signing new prints |
publicKeyPem | string | null | Active public key, PEM-encoded |
publicKeyJwk | object | null | Active public key, JWK-encoded (kty/crv/x/y) |
verificationKeys | array | All keys in the ring, past and present, each usable by its kid |
note | string | How to rebuild the canonical string and verify by hand |
usage | string | Points at pulse_verify_print as the ready-made offline checker |
keyless | boolean | Always true: this tool needs no API key |
source | string | Constant: Pulse Verity Index (thepulse.markets) |
Full JSON Schema
{
"type": "object",
"properties": {
"success": {
"type": [
"boolean",
"null"
],
"description": "Pulse's own success flag for this response"
},
"algorithm": {
"type": [
"string",
"null"
],
"description": "Signing algorithm: ECDSA P-256, SHA-256, IEEE-P1363, base64"
},
"canonical": {
"type": [
"string",
"null"
],
"description": "Canonical string template with real newlines, fields in signed order"
},
"canonicalEscaped": {
"type": [
"string",
"null"
],
"description": "Same template with newlines rendered literally, on one line"
},
"canonicalExample": {
"type": [
"string",
"null"
],
"description": "A worked canonical string example"
},
"keyMode": {
"type": [
"string",
"null"
],
"description": "Pulse's key-storage mode, e.g. persisted"
},
"activeKid": {
"type": [
"string",
"null"
],
"description": "The key id currently signing new prints"
},
"publicKeyPem": {
"type": [
"string",
"null"
],
"description": "Active public key, PEM-encoded"
},
"publicKeyJwk": {
"type": [
"object",
"null"
],
"description": "Active public key, JWK-encoded (kty/crv/x/y)"
},
"verificationKeys": {
"type": "array",
"description": "All keys in the ring, past and present, each usable by its kid",
"items": {
"type": "object",
"properties": {
"kid": {
"type": [
"string",
"null"
],
"description": "Key id, matches the kid field on a signed print"
},
"pem": {
"type": [
"string",
"null"
],
"description": "This key, PEM-encoded"
},
"jwk": {
"type": [
"object",
"null"
],
"description": "This key, JWK-encoded"
},
"active": {
"type": [
"boolean",
"null"
],
"description": "Whether this is the key currently signing"
}
}
}
},
"note": {
"type": "string",
"description": "How to rebuild the canonical string and verify by hand"
},
"usage": {
"type": "string",
"description": "Points at pulse_verify_print as the ready-made offline checker"
},
"keyless": {
"type": "boolean",
"description": "Always true: this tool needs no API key"
},
"source": {
"type": "string",
"description": "Constant: Pulse Verity Index (thepulse.markets)"
}
},
"required": [
"verificationKeys",
"note",
"usage",
"keyless",
"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.