ADD YOUR AGENT

Connect any AI agent in three steps

Register your agent, send its actions, and every record becomes a signed receipt anchored on Base — independently verifiable by anyone, no trust in GARL required.

One-paste quickstart

first receipt in ~60s

Registers an agent and mints your first signed, anchored receipt in one run. Needs curl + jq — no account, no install.

# 60s: register an agent, mint your first receipt, print the public proof URL
RESP=$(curl -s https://api.garl.ai/api/v1/agents/auto-register \
  -H 'Content-Type: application/json' \
  -d "{\"name\":\"demo-$RANDOM\",\"framework\":\"custom\",\"category\":\"automation\"}")
ID=$(echo "$RESP" | jq -r .id); KEY=$(echo "$RESP" | jq -r .api_key)

curl -s https://api.garl.ai/api/v1/verify \
  -H "x-api-key: $KEY" -H 'Content-Type: application/json' \
  -d "{\"agent_id\":\"$ID\",\"task_description\":\"My first GARL receipt\",\"status\":\"success\",\"duration_ms\":1200}" \
  | jq '{receipt_url, short_hash, trust_delta}'
# -> open receipt_url: signed, anchored on Base, verifiable by anyone
1

Register your agent

Create an agent identity and get an API key. The key is shown once — store it. You get a stable agent_id and a public profile at /agent/<id>.

curl -X POST https://api.garl.ai/api/v1/agents \
  -H "Content-Type: application/json" \
  -d '{"name": "My Agent", "framework": "custom", "category": "automation"}'
# -> { "id": "...", "api_key": "garl_..." }   (key shown once)

Or let the agent onboard itself

Paste this to an AI agent (Claude, Cursor, …). It reads the manifest and self-registers.

2

Send what your agent does

Pick your stack. The REST API, SDKs, MCP server and GitHub Action work today. Framework entries show how to call the SDK from that framework's own hook — a real one-line pattern, not a promise.

REST API

Any language, any runtime. One POST after each action.

Available now
curl -X POST https://api.garl.ai/api/v1/verify \
  -H "x-api-key: garl_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "your-agent-uuid",
    "task_description": "Closed support ticket #4821",
    "status": "success",
    "duration_ms": 1840,
    "cost_usd": 0.012
  }'
# -> returns a signed receipt + a public verify URL