Proof of Action

Human-in-the-Loop Approvals

AI agents and automation pipelines request human approval via Telegram or WhatsApp. Every decision is cryptographically signed — a proof token you can verify offline.

Built for Agents, Pipelines, and Automation

Add human checkpoints wherever trust matters. No web UI to build — approvals arrive in messaging apps your team already uses.

AI Agent Approvals

Give Claude, LangChain, or CrewAI agents a trust layer. 131 MCP tools let any agent request human approval before irreversible actions.

CI/CD Deploy Gates

Require human approval before production deploys. Integrate with any CI/CD pipeline via API or MCP. Cryptographic proof of every release decision.

Automation Checkpoints

Add human checkpoints to Make, n8n, or Zapier workflows. Pause automation for sensitive decisions, resume when approved.

How It Works

Your agent asks, the human decides, you get cryptographic proof

Step 1

Create Confirmation

Your agent or pipeline calls POST /v1/confirmations with a message like "Deploy to production?" and the HITL config ID for the approval channel.

Step 2

Human Decides

The human receives the approval request via Telegram or WhatsApp. They tap Approve or Deny, optionally adding a comment with their decision.

Step 3

Proof Generated

You receive a signed proof token (RS256 JWT) of the decision — approved or denied, with timestamp and optional comment. Verify it offline with your public key.

Approval Channels

Humans approve via the messaging apps they already use

telegram logo

Telegram

Inline keyboard buttons

Proof Holdings

Deploy v2.1 to production?

ApproveDeny
whatsapp logo

WhatsApp

Interactive button messages

Proof Holdings

Deploy v2.1 to production?

ApproveDeny

API Integration

Add human approvals to your agent or pipeline in minutes

1. Create Verification Request

curl -X POST https://api.proof.holdings/api/v1/confirmations \
  -H "Authorization: Bearer pk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "hitl_id": "YOUR_HITL_CONFIG_ID",
    "message": "Deploy v2.1 to production?",
    "timeout": 3600
  }'

2. Verify the Proof Token

# Poll for approval status
curl https://api.proof.holdings/api/v1/confirmations/CONFIRMATION_ID \
  -H "Authorization: Bearer pk_live_YOUR_API_KEY"

Response Example

{
  "id": "507f1f77bcf86cd799439011",
  "hitl_id": "YOUR_HITL_CONFIG_ID",
  "message": "Deploy v2.1 to production?",
  "status": "approved",
  "response": {
    "action": "approve",
    "text": "Looks good, ship it!",
    "responded_at": "2026-03-15T10:51:30Z"
  },
  "proof": {
    "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
    "expires_at": "2026-04-14T10:51:30Z"
  },
  "timeout_at": "2026-03-15T11:50:00Z",
  "created_at": "2026-03-15T10:50:00Z"
}