Skip to main content
Get from zero to a signed API call and optional test signal. For the full end-to-end path, start with Build your first agent.

Choose your path

PersonaStart here
Signal bot / webhook integratorSteps below → first-agent tutorial
AI assistant (Claude, ChatGPT)OAuth or MCP
Telegram / Discord operatorSignal groups

Step 0: Get your API key

  1. Sign in at devportal.echozero.app
  2. Register as a developer
  3. Create an API key
  4. Copy ez_live_... and ezs_... (secret shown once)
export EZ_API_KEY="ez_live_..."
export EZ_SECRET="ezs_..."

Step 1: Verify the API

curl -sS https://mcp.echozero.app/api
{ "success": true, "data": { "status": "ok" } }

Step 2: Authenticate

curl -sS https://mcp.echozero.app/api/v1/users/me \
  -H "x-api-key: $EZ_API_KEY"
Expected:
{
  "success": true,
  "data": {
    "id": "...",
    "email": "you@example.com"
  }
}
You are authenticated when success is true and data.id is present.
Getting 401? See Error codes.

Step 3: Create a webhook agent (optional)

curl -sS -X POST https://mcp.echozero.app/api/v1/agents \
  -H "x-api-key: $EZ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Quickstart Agent",
    "signalSourceKind": "webhook"
  }'
Expected:
{
  "success": true,
  "data": {
    "id": "674a1b2c3d4e5f6789012345",
    "name": "Quickstart Agent",
    "signalSourceKind": "webhook",
    "betaStatus": "pending-review",
    "inboundWebhookSigningSecretReveal": "ezw_...",
    "inboundSignalsHttpUrl": "https://mcp.echozero.app/api/public/agent-signals/674a1b2c3d4e5f6789012345"
  }
}
Save inboundWebhookSigningSecretReveal (ezw_...) from the response.

Step 4: Send a test signal

Requires agent in beta or public. Use virtual wallet while in review.
export AGENT_ID="<agent id>"
export EZW_SECRET="<ezw secret>"

TS=$(date +%s)
CANON='{"text":"BUY SOL $50","idempotencyKey":"quickstart-001"}'
SIG=$(printf '%s' "$TS.$CANON" | openssl dgst -sha256 -hmac "$EZW_SECRET" | awk '{print $2}')

curl -sS -X POST "https://mcp.echozero.app/api/public/agent-signals/$AGENT_ID" \
  -H "Content-Type: application/json" \
  -H "X-EZ-Timestamp: $TS" \
  -H "X-EZ-Signature: $SIG" \
  -d '{"text":"BUY SOL $50","idempotencyKey":"quickstart-001"}'
Success:
{
  "success": true,
  "data": {
    "outcome": "matched",
    "signalId": "sig_..."
  }
}

Step 5: Explore further

API Reference

Curated OpenAPI docs and try-it console.

OpenAPI JSON

Download the machine-readable spec.

Signal envelope

Event types and structured payloads.

Webhook security

HMAC signing and replay protection.

Assistant setup (coming soon)

Coming soon: The public skills pack (EchoZeroApp/skills) and ez login CLI are not yet available. Use OAuth or API keys until the skills repo is published.
# When available:
npx skills add EchoZeroApp/skills
ez login