Skip to main content
The echozero-sdk repo provides clients in four languages: TypeScript, Python, Go, and Rust. Every package covers the same four jobs:
  • REST client with optional HMAC request signing
  • Signal ingress: signed posts to your agent’s inbound webhook
  • WebSocket signal client for the /ws/signals gateway
  • Webhook verification for inbound and outbound (signal.execution) signatures

Install

Use 0.2.0 or later for the WebSocket signal client. The 0.1.0 WebSocket client could not connect to the gateway.

REST client

API-key requests must be HMAC-signed (see API keys and HMAC). Pass your secret key to the client and the SDK signs for you.

Send a signal over HTTP

postAgentSignal signs the body with your agent’s ezw_ webhook secret and posts it to /api/public/agent-signals/{agentId}. This is the only path that accepts natural-language text signals as well as the structured signal envelope.
To sign without sending, use signInboundWebhook / sign_inbound_webhook / SignInboundWebhook, which return the X-EZ-Timestamp and X-EZ-Signature headers.

WebSocket signal client

Connects to the Socket.IO signal gateway with your developer API key. The gateway takes structured signals only (eventType, or the legacy action / tokenAddress shape), not text. Responses arrive as signal:received / signal:error events and are not tied to a specific request, so match them on idempotencyKey / signalId.
The TypeScript and Python clients reconnect automatically. The Go and Rust clients do not: connect again and re-send unacknowledged signals with the same idempotencyKey.

Verify webhooks

verifyOutboundWebhook checks the x-echozero-signature on signal.execution callbacks EchoZero sends to you. verifyInboundWebhook checks an X-EZ-Signature you produced (useful in tests). Golden vectors are in Signature test vectors.

Postman collection

Every public REST and MCP endpoint, ready to import. 182 requests across 24 folders.

Download the Postman collection

EchoZero API.postman_collection.json
After importing, set the collection variables: Every credential in the collection is a {{variable}} placeholder, so no keys are bundled. Requests that need HMAC follow the scheme in Webhook security; the signature test vectors let you confirm your signing before you send a live signal.