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
Persona Start here Signal bot / webhook integrator Steps below → first-agent tutorial AI assistant (Claude, ChatGPT) OAuth or MCP Telegram / Discord operator Signal groups
Step 0: Get your API key
Sign in at devportal.echozero.app
Register as a developer
Create an API key
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