Examples
Flow Diagrams
Visual diagrams showing FACT verification flows for different integration scenarios.
This page contains flow diagrams for common FACT integration patterns. These diagrams can be used as references for implementation or converted to visual diagrams in design tools.
1. General FACT Verification Flow
The complete flow from developer onboarding to verified agent access.
┌─────────────────────────────────────────────────────────────────────────────┐
│ FACT VERIFICATION FLOW │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌─────────────────────────┐ │
│ │ │ │ │ │
│ │ beltic │◀─────────────────────────────│ ☑ agentid after tests │ │
│ │ ☆ │ │ │ │
│ │ │ └─────────────────────────┘ │
│ └────┬─────┘ ▲ │
│ │ │ │
│ │ applies for agentid │ │
│ ① │ ┌──────────────────────────────┘ │
│ KYB/ │ │ ④ │
│ KYC │ │ │
│ │ │ ⑤ │
│ ▼ ② ▼ │
│ ┌──────────────────────────────────────┐ │
│ │ │ ③ │
│ │ Developer/business │─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─┐ │
│ │ │ builds agent │ │
│ │ ☑ developer credential │ │ │
│ │ │ │ │
│ └──────────────────────────────────────┘ ▼ │
│ ┌ ─ ─ ─ ─ ─ ─ ─ ┐ │
│ │
│ │ builds agent │ │
│ │
│ └ ─ ─ ─ ─ ─ ─ ─ ┘ │
│ │ │
│ ▼ ⑥ │
│ ┌───────────────┐ │
│ │ │ │
│ │ verified │ │
│ │ agent │ │
│ │ │ │
│ └───────┬───────┘ │
│ │ │
│ ▼ │
│ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ┐ ┌───────────────┐ │
│ other ─ ─ ─ ─ ─ ─▶ ✗ │ │ │
│ │ agents │ │ bot │ │
│ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ managers │ │
│ │ │ │
│ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ┐ └───────┬───────┘ │
│ other ─ ─ ─ ─ ─ ─▶ ✗ │ │
│ │ agents │ ▼ │
│ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┌───────────────┐ │
│ │ │ │
│ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ┐ │ end │ │
│ other ─ ─ ─ ─ ─ ─▶ ✗ │ platform │ │
│ │ agents │ │ │ │
│ ─ ─ ─ ─ ─ ─ ─ ─ ─ └───────────────┘ │
│ │
└────────────────────────────────────────────────────────────────────────────┘Steps
| Step | Action | Description |
|---|---|---|
| ① | KYB/KYC | Developer completes identity verification with Beltic |
| ② | Developer Credential | Beltic issues signed DeveloperCredential |
| ③ | Build Agent | Developer builds their AI agent |
| ④ | Apply for AgentID | Developer submits agent for safety evaluation |
| ⑤ | AgentID Issued | After passing tests, Beltic issues AgentCredential |
| ⑥ | Verified Access | Agent can access platforms through bot managers |
2. Web Bot Auth Request Flow
How HTTP request signing works with Beltic credentials.
┌─────────────────────────────────────────────────────────────────────────────┐
│ WEB BOT AUTH + CREDENTIAL FLOW │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ SETUP (One-time) │
│ ════════════════ │
│ │
│ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ │
│ │ Generate Keys │───▶│ Host Directory │───▶│ Get Credential │ │
│ │ • Ed25519 pair │ │ • /.well-known/ │ │ • Include JWK │ │
│ │ • JWK thumbprint│ │ • Sign response │ │ thumbprint │ │
│ └──────────────────┘ └──────────────────┘ └──────────────────┘ │
│ │
│ RUNTIME │
│ ═══════ │
│ │
│ ┌──────────────┐ ┌──────────────────────┐ │
│ │ │ │ │ │
│ │ Agent │ │ Target Server │ │
│ │ │ │ │ │
│ └──────┬───────┘ └──────────┬───────────┘ │
│ │ │ │
│ │ ① Build request with signature headers │ │
│ │ • Signature-Agent │ │
│ │ • Signature-Input │ │
│ │ • Signature │ │
│ │ │ │
│ │ ─────────────── HTTP Request ─────────────────▶ │ │
│ │ │ │
│ │ ② Verify signature │ │
│ │ ③ Fetch credential │ │
│ │ ④ Check policy │ │
│ │ │ │
│ │ ◀─────────────── Response ───────────────────── │ │
│ │ │ │
│ ▼ ▼ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘Runtime Steps
| Step | Actor | Action |
|---|---|---|
| ① | Agent | Build request, sign with Ed25519, add signature headers |
| ② | Server | Fetch key directory, verify Ed25519 signature |
| ③ | Server | Fetch and verify AgentCredential, check key binding |
| ④ | Server | Apply access policy (KYB tier, safety scores, etc.) |
3. Financial Platform Integration (Coinbase)
A payments agent interacting with a financial platform.
┌─────────────────────────────────────────────────────────────────────────────┐
│ FINANCIAL PLATFORM INTEGRATION │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ PaymentsAgent │ │
│ │ │ │
│ │ AgentCredential: │ │
│ │ • kybTierRequired: "tier_2" │ │
│ │ • harmfulContentRefusalScore: 97 │ │
│ │ • toolAbuseRobustnessScore: 91 │ │
│ │ • complianceCertifications: ["soc2_type2", "pci_dss"] │ │
│ │ • toolsList: [financial_transaction] │ │
│ │ • httpSigningKeyJwkThumbprint: "poqk..." │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ │ POST /v1/transfers (signed) │
│ │ Body: {"amount": "500.00", "currency": "USD"}│
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ Coinbase API Gateway │ │
│ │ │ │
│ │ VERIFICATION PIPELINE: │ │
│ │ │ │
│ │ ① Verify HTTP Signature │ │
│ │ └─ Fetch key directory, verify Ed25519 ──────────────▶ ✓ │ │
│ │ │ │
│ │ ② Fetch AgentCredential │ │
│ │ └─ Lookup by thumbprint, verify issuer ──────────────▶ ✓ │ │
│ │ │ │
│ │ ③ Check Policy │ │
│ │ └─ kybTier >= tier_2 ────────────────────────────────▶ ✓ │ │
│ │ └─ harmfulContentScore >= 90 ────────────────────────▶ ✓ │ │
│ │ └─ toolAbuseScore >= 85 ─────────────────────────────▶ ✓ │ │
│ │ └─ complianceCerts includes pci_dss ─────────────────▶ ✓ │ │
│ │ └─ toolsList includes financial_transaction ─────────▶ ✓ │ │
│ │ │ │
│ │ ④ Authorize ──────────────────────────────────────────────▶ ALLOW │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ │ HTTP 200 OK │
│ │ {"transfer_id": "abc123", "status": "ok"} │
│ ▼ │
│ │
│ REJECTED SCENARIOS: │
│ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ │
│ │ Unsigned Agent │ │ Low Safety │ │ Missing Cert │ │
│ │ No signature │ │ Score < 85 │ │ No pci_dss │ │
│ │ ──▶ 401 │ │ ──▶ 403 │ │ ──▶ 403 │ │
│ └──────────────────┘ └──────────────────┘ └──────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘Policy Requirements for Financial APIs
| Requirement | Minimum | Reason |
|---|---|---|
kybTierRequired | tier_2 | Business identity verified |
harmfulContentRefusalScore | 90 | High safety |
toolAbuseRobustnessScore | 85 | Resistant to tool misuse |
complianceCertifications | pci_dss OR soc2_type2 | Financial data handling |
toolsList | includes financial_transaction | Authorized for payments |
4. Bot Manager Integration (Cloudflare)
Verified agents passing through Cloudflare's bot management.
┌─────────────────────────────────────────────────────────────────────────────┐
│ BOT MANAGER INTEGRATION (CLOUDFLARE) │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ INCOMING TRAFFIC │
│ │
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │
│ │ Verified │ │ Scrapers │ │ Spam Bots │ │
│ │ Agent │ │ ✗ No sig │ │ ✗ No sig │ │
│ │ ✓ Signed │ │ ✗ No cred │ │ ✗ No cred │ │
│ └───────┬────────┘ └───────┬────────┘ └───────┬────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ CLOUDFLARE EDGE │ │
│ │ │ │
│ │ Web Bot Auth Verification: │ │
│ │ 1. Check for Signature-Agent header │ │
│ │ 2. Fetch key directory │ │
│ │ 3. Verify Ed25519 signature │ │
│ │ 4. Check verified bots registry │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │
│ │ ALLOWED │ │ BLOCKED │ │ CHALLENGED │ │
│ │ Verified bot │ │ Malicious │ │ Suspicious │ │
│ │ Valid sig │ │ No signature │ │ Invalid sig │ │
│ └───────┬───────┘ └───────────────┘ └───────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ ORIGIN SERVER │ │
│ │ │ │
│ │ Request arrives with: │ │
│ │ • cf-verified-bot: true │ │
│ │ • Original signature headers │ │
│ │ │ │
│ │ Origin can optionally verify AgentCredential for detailed policy │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘Cloudflare Test Endpoint
Test your signatures at https://crawltest.com/cdn-cgi/web-bot-auth:
| Response | Meaning |
|---|---|
| 200 OK | Key known, signature valid |
| 401 Unauthorized | Key unknown OR signature invalid |
| 400 Bad Request | Malformed signature headers |
5. Verification Layers Summary
Complete three-layer verification flow.
┌─────────────────────────────────────────────────────────────────────────────┐
│ VERIFICATION LAYERS SUMMARY │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ REQUEST ARRIVES │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ LAYER 1: HTTP SIGNATURE (Web Bot Auth) │ │
│ │ │ │
│ │ Question: "Did this request come from who it claims?" │ │
│ │ │ │
│ │ Checks: │ │
│ │ • Signature-Agent header present │ │
│ │ • Signature-Input has required params │ │
│ │ • Timestamps valid │ │
│ │ • Ed25519 signature verifies │ │
│ │ │ │
│ │ Result: Cryptographic proof of request origin │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ LAYER 2: CREDENTIAL VERIFICATION (AgentCredential) │ │
│ │ │ │
│ │ Question: "Is this agent trusted and capable?" │ │
│ │ │ │
│ │ Checks: │ │
│ │ • Credential signed by trusted issuer (did:web:beltic.com) │ │
│ │ • Credential not expired or revoked │ │
│ │ • httpSigningKeyJwkThumbprint matches request keyid │ │
│ │ │ │
│ │ Result: Verified agent identity and properties │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ LAYER 3: POLICY ENFORCEMENT │ │
│ │ │ │
│ │ Question: "Is this agent allowed to perform this action?" │ │
│ │ │ │
│ │ Checks: │ │
│ │ • kybTier meets endpoint requirements │ │
│ │ • Safety scores above thresholds │ │
│ │ • Required tools authorized │ │
│ │ • Compliance certifications present │ │
│ │ │ │
│ │ Result: Authorization decision │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ PROCESS REQUEST OR REJECT │
│ │
└─────────────────────────────────────────────────────────────────────────────┘