# Proof Holdings — Full Technical Context > The verification API for humans and AI agents. Seven verification proofs — four live today (Control, Delegation, Action, Me), three coming soon (Agreement, Development, Enforcement) — one API for developers and AI agents. ## Product Overview Proof Holdings provides cryptographic proof for the things that matter: control of digital assets, authority over the artifacts that act for a domain, human approvals, and real identity. Instead of SMS OTP (where a code is sent TO the user), Proof of Control uses Reverse OTP: the user sends a message TO the service. This eliminates delivery failures, SIM-swap attacks, and interception. Every verification produces a signed ES256 JWT proof token that can be verified offline without contacting the servers — proofs accumulate as a portfolio of bearer tokens the holder can present anywhere. The platform serves two audiences: 1. **Developers** building verification into their apps (via REST API, SDKs, integrations) 2. **AI agents** that need to verify identities, get human approval, or authorize the artifacts acting for their domain (via MCP server with 176 tools) ## The Proofs 4 are live today (Control, Delegation, Action, Me); 3 coming soon (Agreement, Development, Enforcement). ### 1. Proof of Control (live) Proof of Control verifies that a person or business controls an asset they claim: phone numbers (Reverse OTP via Telegram, WhatsApp, or SMS — the user messages Proof, killing OTP-interception and SIM-swap risk), email addresses (magic link or OTP), and domains (DNS TXT, HTTP file, admin email, auto-verify). Social accounts (OAuth) and crypto wallets (message signing) are coming soon. Each successful verification mints a signed ES256 proof token. Positioning: Secure your business with a verification layer. Without Proof: Per-message OTP bills, DIY email loops, manual domain checks, screenshot of socials and wallets. Live today: phone (3 channels), email (2 methods), domain (4 methods). Coming soon: social accounts (OAuth), crypto wallets (message signing). **Phone verification:** - Telegram: User sends code to the Proof bot - WhatsApp: User sends code to the Proof WhatsApp Business number - SMS: Traditional OTP (fallback channel) **Email verification:** - Magic Link: Click-to-verify link sent to email - OTP: 6-digit code sent to email **Domain verification:** - DNS TXT: Add a TXT record to domain DNS - HTTP File: Place a verification file at /.well-known/ - Admin Email: Send code to admin@, webmaster@, postmaster@, or hostmaster@ - Auto-Verify: Automatic DNS provider detection and one-click verification **Social account verification (OAuth) — coming soon:** GitHub, Google, LinkedIn, X, Facebook, Instagram, TikTok, YouTube, Bitbucket, Twitch, Spotify, Slack, Discord **Wallet verification (message signing) — coming soon:** Ethereum, Solana, Bitcoin, BNB, Cosmos, Tron, Cardano, Hedera ### 2. Proof of Delegation (live) Proof of Delegation is a signed statement that whoever controls a domain authorized a named artifact for a listed set of capabilities — nothing more; it says nothing about the artifact or the business behind it. The principal is a domain proven through Proof of Control; the delegate is a typed identifier (an https URL or a package URL) so the token points at exactly one package, container or endpoint; the scope is an explicit capability list. Publish the token on the artifact and revoke the record whenever you want — revoking one delegation leaves the domain proof and every sibling delegation intact, and the revocation reaches every verifier reading the published status list within a minute. Positioning: Secure your name with signed, revocable delegation. Without Proof: Anyone can ship a package or an MCP server under your brand’s name, and you have no way to state publicly which ones you authorized. ### 3. Proof of Action (live) Proof of Action puts a human decision in front of any irreversible step. An agent or system requests approval, the designated person approves or denies on their own device — end-to-end encrypted — and the decision is recorded as a signed proof token: who approved what, when, over which channel. Positioning: Secure your irreversible actions with human approval. Without Proof: “OK, send it” in a WhatsApp thread — sign-off nobody can prove later. Use cases: deploy gates, payment approvals, content publishing, data deletion, infrastructure changes, account actions. ### 4. Proof of Agreement (coming soon — no live API yet) Proof of Agreement (the Witness product line) turns a group conversation into a chain of verifiable records. Once every member consents to witnessing, each message is preserved as a proof — who said what, and when — so agreements made in chat stop being deniable. Coming soon. Positioning: Secure your agreements with an incorruptible witness. Without Proof: He-said-she-said; chat screenshots are forgeable; no neutral witness. ### 5. Proof of Me (live) Proof of Me protects the people around you from impostors. You enroll trusted contacts — family, colleagues, clients — as challengers. When someone claiming to be you reaches out to them, the challenger taps once and you receive a confirmation request on a different channel than the impostor used; you approve or deny, and the challenger sees the result. Scheduled drills keep everyone sharp. Positioning: Secure your team with impersonation defense. Without Proof: Code words and call-back rituals that get skipped when it matters. Docs: https://proof.holdings/docs/proof-me ### 6. Proof of Development (coming soon — no live API yet) Proof of Development gives software provenance an audit trail. Built on the same proof-token pipeline, every completed task issues a token capturing the full context of the change — what was done, why, when, by whom, and under which workflow protocol — so how software was built stops being a matter of trust. Coming soon. Positioning: Secure your codebase with proof of every change. Without Proof: Unverifiable development provenance; no audit trail of how software was built. ### 7. Proof of Enforcement (coming soon — no live API yet) Proof of Enforcement demonstrates that rules were followed, not merely declared. Process gates — reviews, approvals, verification steps — emit proofs as they execute, so compliance across teams becomes checkable evidence instead of self-reported claims. Coming soon. Positioning: Secure your rules with proof they were followed. Without Proof: Process compliance is claimed, not proven; gates skipped silently. ## API Reference **Base URL:** `https://api.proof.holdings` **Authentication:** API key via `x-api-key` header (prefix `pk_live_` for production, `pk_test_` for test mode) **OpenAPI spec:** https://api.proof.holdings/api/openapi.json ### Key Endpoints **Verifications (Proof of Control):** - `POST /api/v1/verifications` — Create a verification - `GET /api/v1/verifications/:id` — Get verification status - `GET /api/v1/verifications` — List verifications - `POST /api/v1/verifications/:id/submit` — Submit a challenge code (email OTP) **Verification Requests (embeddable B2B flow):** - `POST /api/v1/verification-requests` — Create a request (returns embeddable URL) - `GET /api/v1/verification-requests/:id` — Get request status **HITL Configs (Human-in-the-Loop setup):** - `POST /api/v1/hitl` — Create HITL config - `GET /api/v1/hitl` — List HITL configs - `GET /api/v1/hitl/:id` — Get a HITL config - `PATCH /api/v1/hitl/:id` — Update a HITL config - `DELETE /api/v1/hitl/:id` — Archive a HITL config **Confirmations (Proof of Action):** - `POST /api/v1/confirmations` — Request human approval - `GET /api/v1/confirmations/:id` — Get approval status - `GET /api/v1/confirmations` — List confirmations **Authorizations (consent to be contacted — gates Proof of Action requests and Proof of Me identity challenges):** - `POST /api/v1/authorizations` — Ask a person to allow approval requests on their channel - `GET /api/v1/authorizations` — List authorizations - `GET /api/v1/authorizations/:id` — Get an authorization - `DELETE /api/v1/authorizations/:id` — Revoke an authorization **Delegations (Proof of Delegation — a proven domain authorizes a url/purl artifact):** - `POST /api/v1/delegations` — Issue a delegation over a url/purl artifact (mints the token) - `GET /api/v1/delegations` — List delegations - `GET /api/v1/delegations/:id` — Get a delegation incl. its token - `POST /api/v1/delegations/:id/revoke` — Revoke a delegation **Proofs:** - `POST /api/v1/proofs/validate` — Validate a proof token (public, no auth) - `GET /.well-known/jwks.json` — ES256 public key set (JWKS) for offline validation **Proof of Me (challengers & identity challenges):** - `POST /api/v1/circles/:id/members` — Add a trusted member - `GET /api/v1/circles/:id/members` — List members - `DELETE /api/v1/circles/:id/members/:memberId` — Remove a member - `POST /api/v1/circles/:id/members/invite` — Mint a single-use enrollment invite (deep links + QR) - `POST /api/v1/circles/:id/members/:memberId/drill` — Fire an on-demand safety drill - `POST /api/v1/identity-challenges` — Create a cross-channel identity challenge - `GET /api/v1/identity-challenges/:id` — Poll an identity challenge **Account (authenticated):** - `GET /api/v1/me/phones` — List verified phones - `GET /api/v1/me/emails` — List verified emails - `GET /api/v1/me/assets` — List all verified assets - `GET /api/v1/me/api-keys` — List API keys - `GET /api/v1/me/profiles` — List public profiles - `GET /api/v1/me/domains` — List verified domains **Templates:** - `GET /api/v1/templates` — List message templates - `PUT /api/v1/templates/:channel/:messageType` — Create or update a message template **Billing:** - `GET /api/v1/billing/subscription` — Get current subscription - `POST /api/v1/billing/checkout` — Create Stripe checkout session ### Example: Create Phone Verification (JavaScript) ```javascript import { Proof } from '@proof-holdings/sdk'; const proof = new Proof('pk_live_...'); const verification = await proof.verifications.create({ type: 'phone', channel: 'whatsapp', identifier: '+37069199199', }); // User sends code via WhatsApp const result = await proof.verifications.waitForCompletion(verification.id); console.log(result.proof.token); // ES256 JWT ``` ### Example: Request Human Approval (Python) ```python from proof_holdings import Proof proof = Proof(api_key="pk_live_...") # Create HITL config (one-time setup) config = proof.hitl.create(channel="telegram", chat_id="123456789") # Request approval confirmation = proof.confirmations.create( hitl_id=config.id, message="Deploy v2.1.0 to production?", timeout_minutes=30, ) # Poll or use webhooks result = proof.confirmations.get(confirmation.id) print(result.status) # "approved" or "denied" print(result.proof.token) # Signed proof of decision ``` ### Example: MCP Server Configuration ```json { "mcpServers": { "proof-holdings": { "command": "npx", "args": ["-y", "@proof-holdings/mcp-server"], "env": { "PROOF_API_KEY": "pk_live_..." } } } } ``` The MCP server exposes 176 tools covering: verification management, HITL approvals, Proof of Me challenger management, asset management, proof validation, account management, billing, webhooks, templates, and more. ## SDKs | Language | Package | Install | |----------|---------|---------| | JavaScript | `@proof-holdings/sdk` | `npm install @proof-holdings/sdk` | | Python | `proof-holdings` | `pip install proof-holdings` | | Go | `github.com/ProofHoldings/sdk-go` | `go get github.com/ProofHoldings/sdk-go` | | PHP | `proof-holdings/sdk` | `composer require proof-holdings/sdk` | All SDKs include: typed clients, automatic retries, built-in polling, and test mode support. ## Integrations - **MCP Server**: AI agent integration (176 tools) - **n8n**: Workflow automation (17 operations) - **Zapier**: Triggers and actions - **Make**: Scenario automation - **GitHub Actions**: CI/CD approval gates ## Pricing | Plan | Price | Proofs/month | Per-proof cost | Overage | |------|-------|-------------|----------------|---------| | Pay as you go | €0.03/proof | 300 free | €0.03 | €0.03 | | €9 | €9/month | 1,000 | €0.009 | €0.03 | | €29 | €29/month | 3,000 | €0.0097 | €0.025 | | €79 | €79/month | 10,000 | €0.0079 | €0.02 | | Custom | Custom | 100,000+ | Custom | Custom | 1 proof = 1 verified asset, 1 HITL config, 1 approval/denial, or 1 authorization. All plans include: all verification types, custom branding, unlimited API calls, unlimited proof validation, webhooks, test mode, and dashboard access. Enterprise includes BYOC (Bring Your Own Channels): your own Telegram bot, WhatsApp Business number, custom email sender — users never see proof.holdings branding. ## Security - **Reverse OTP**: User-initiated verification — cannot intercept what was not sent - **ES256 JWT tokens**: Every proof is cryptographically signed and verifiable offline - **Public key endpoint**: Available at `GET /.well-known/jwks.json` for offline validation - **Test mode**: Full functionality with `pk_test_` keys, no real verifications sent - **GDPR-friendly**: Consent records for human authorizations, data minimization practices ## Comparison vs Alternatives | Feature | Proof Holdings | SMS OTP (Twilio) | TOTP (Google Auth) | WebAuthn | |---------|-------------------|-------------------|---------------------|----------| | Cost per verification | From €0.0079 | $0.05-$0.50 | Free | Free | | Delivery failures | 0% (user-initiated) | 10-30% internationally | N/A | N/A | | SIM-swap resistant | Yes (Reverse OTP) | No | Yes | Yes | | Offline verifiable | Yes (ES256 JWT) | No | No | No | | Human approvals (HITL) | Yes | No | No | No | | AI agent integration | 176 MCP tools | Manual API only | N/A | N/A | | Multi-asset types | Phone, email, domain, wallet, social | Phone only | N/A | Browser only | ## For AI Agents - **Agent manifest**: https://proof.holdings/.well-known/agents.json - **A2A AgentCard**: https://proof.holdings/.well-known/agent-card.json (JSON-RPC service: https://proof.holdings/api/a2a) - **ANP agent descriptions**: https://proof.holdings/.well-known/agent-descriptions - **MCP server**: `npx -y @proof-holdings/mcp-server` (176 tools) - **Public demo key** (test mode, safe to publish): `pk_test_demo_proofholdings_public_a2a` ### Machine Quickstart (create -> test-verify -> validate) ```bash KEY=pk_test_demo_proofholdings_public_a2a # 1) Create a test verification (test mode skips real delivery) curl -sX POST https://api.proof.holdings/api/v1/verifications \ -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \ -d '{"type":"email","channel":"email","identifier":"demo+a2a@proof.holdings"}' # -> returns { "id": "...", ... } # 2) Instantly complete it in test mode -> a real ES256 proof token curl -sX POST https://api.proof.holdings/api/v1/verifications/:id/test-verify \ -H "Authorization: Bearer $KEY" # -> returns { "proof_token": "eyJ...", ... } # 3) Validate the proof token (public, no key needed) curl -sX POST https://api.proof.holdings/api/v1/proofs/validate \ -H "Content-Type: application/json" \ -d '{"proof_token":""}' ``` ## Company - **Full name**: Proof Holdings - **Legal entity**: LT Telecom (UAB "LT telekomunikacijos") - **Domain**: proof.holdings - **GitHub**: https://github.com/ProofHoldings - **LinkedIn**: https://www.linkedin.com/company/proofholdings - **Contact**: hello@proof.holdings ## Links - Website: https://proof.holdings (Markdown: https://proof.holdings/md/home.md) - Documentation: https://proof.holdings/docs (Markdown: https://proof.holdings/md/docs.md) - API Reference: https://proof.holdings/docs/api (Markdown: https://proof.holdings/md/docs/api.md) - MCP Server: https://proof.holdings/docs/mcp (Markdown: https://proof.holdings/md/docs/mcp.md) - SDKs: https://proof.holdings/docs/sdks (Markdown: https://proof.holdings/md/docs/sdks.md) - Integrations: https://proof.holdings/docs/integrations (Markdown: https://proof.holdings/md/docs/integrations.md) - Pricing: https://proof.holdings/docs/pricing (Markdown: https://proof.holdings/md/docs/pricing.md) - Comparison: https://proof.holdings/docs/comparison (Markdown: https://proof.holdings/md/docs/comparison.md) - Threat Model: https://proof.holdings/docs/threat-model (Markdown: https://proof.holdings/md/docs/threat-model.md) - Proof of Me: https://proof.holdings/docs/proof-me (Markdown: https://proof.holdings/md/docs/proof-me.md) - Proof of Control: https://proof.holdings/verify (Markdown: https://proof.holdings/md/verify.md) - Proof of Delegation: https://proof.holdings/delegation (Markdown: https://proof.holdings/md/delegation.md) - Proof of Action: https://proof.holdings/primitives/action (Markdown: https://proof.holdings/md/primitives/action.md) - Proof of Agreement (coming soon): https://proof.holdings/primitives/agreement (Markdown: https://proof.holdings/md/primitives/agreement.md) - Proof of Me: https://proof.holdings/primitives/me (Markdown: https://proof.holdings/md/primitives/me.md) - Proof of Development (coming soon): https://proof.holdings/primitives/development (Markdown: https://proof.holdings/md/primitives/development.md) - Proof of Enforcement (coming soon): https://proof.holdings/primitives/enforcement (Markdown: https://proof.holdings/md/primitives/enforcement.md) - OpenAPI Spec: https://api.proof.holdings/api/openapi.json - API Health: https://api.proof.holdings/health - GitHub Docs: https://github.com/ProofHoldings/docs ## Markdown Mirror (all pages) Every public page has a clean Markdown twin for agents. Full catalog: https://proof.holdings/md/index.md - Proof Holdings: https://proof.holdings/md/home.md - FAQ: https://proof.holdings/md/faq.md - About: https://proof.holdings/md/about.md - Compliance: https://proof.holdings/md/compliance.md - Electronic Signatures: https://proof.holdings/md/signatures.md - MCP Server Ownership: https://proof.holdings/md/mcp-servers.md - How Delegation Works: https://proof.holdings/md/delegation.md - Brand Kit: https://proof.holdings/md/brand-kit.md - Privacy Policy: https://proof.holdings/md/privacy.md - Terms of Service: https://proof.holdings/md/terms.md - Documentation: https://proof.holdings/md/docs.md - Core Primitives: https://proof.holdings/md/docs/primitives.md - API Reference: https://proof.holdings/md/docs/api.md - SDKs: https://proof.holdings/md/docs/sdks.md - Smart Reuse: https://proof.holdings/md/docs/smart-reuse.md - Public Profiles: https://proof.holdings/md/docs/profiles.md - Message Templates: https://proof.holdings/md/docs/templates.md - Comparison: https://proof.holdings/md/docs/comparison.md - Pricing: https://proof.holdings/md/docs/pricing.md - Threat Model: https://proof.holdings/md/docs/threat-model.md - MCP Server: https://proof.holdings/md/docs/mcp.md - Integrations: https://proof.holdings/md/docs/integrations.md - Proof of Me: https://proof.holdings/md/docs/proof-me.md - Proof of Delegation: https://proof.holdings/md/docs/delegation.md - Proof of Action: https://proof.holdings/md/primitives/action.md - Proof of Agreement — Coming Soon: https://proof.holdings/md/primitives/agreement.md - Proof of Me: https://proof.holdings/md/primitives/me.md - Proof of Development — Coming Soon: https://proof.holdings/md/primitives/development.md - Proof of Enforcement — Coming Soon: https://proof.holdings/md/primitives/enforcement.md - Proof of Control: https://proof.holdings/md/verify.md - Phone Verification: https://proof.holdings/md/verify/phone.md - Telegram Verification: https://proof.holdings/md/verify/phone/telegram.md - WhatsApp Verification: https://proof.holdings/md/verify/phone/whatsapp.md - SMS Verification: https://proof.holdings/md/verify/phone/sms.md - Email Verification: https://proof.holdings/md/verify/email.md - Magic Link Verification: https://proof.holdings/md/verify/email/link.md - Email OTP Verification: https://proof.holdings/md/verify/email/otp.md - Domain Verification: https://proof.holdings/md/verify/domain.md - DNS TXT Verification: https://proof.holdings/md/verify/domain/dns.md - HTTP File Verification: https://proof.holdings/md/verify/domain/http.md - Admin Email Verification: https://proof.holdings/md/verify/domain/email.md - Auto-Verify Domain: https://proof.holdings/md/verify/domain/auto.md - Social Verification: https://proof.holdings/md/verify/social.md - GitHub Verification: https://proof.holdings/md/verify/social/github.md - Google Verification: https://proof.holdings/md/verify/social/google.md - LinkedIn Verification: https://proof.holdings/md/verify/social/linkedin.md - X Verification: https://proof.holdings/md/verify/social/x.md - Facebook Verification: https://proof.holdings/md/verify/social/facebook.md - Instagram Verification: https://proof.holdings/md/verify/social/instagram.md - TikTok Verification: https://proof.holdings/md/verify/social/tiktok.md - YouTube Verification: https://proof.holdings/md/verify/social/youtube.md - Bitbucket Verification: https://proof.holdings/md/verify/social/bitbucket.md - Twitch Verification: https://proof.holdings/md/verify/social/twitch.md - Spotify Verification: https://proof.holdings/md/verify/social/spotify.md - Slack Verification: https://proof.holdings/md/verify/social/slack.md - Discord Verification: https://proof.holdings/md/verify/social/discord.md - Wallet Verification: https://proof.holdings/md/verify/wallet.md - Ethereum Verification: https://proof.holdings/md/verify/wallet/ethereum.md - Solana Verification: https://proof.holdings/md/verify/wallet/solana.md - Bitcoin Verification: https://proof.holdings/md/verify/wallet/bitcoin.md - BNB Verification: https://proof.holdings/md/verify/wallet/bnb.md - Cosmos Verification: https://proof.holdings/md/verify/wallet/cosmos.md - Tron Verification: https://proof.holdings/md/verify/wallet/tron.md - Cardano Verification: https://proof.holdings/md/verify/wallet/cardano.md - Hedera Verification: https://proof.holdings/md/verify/wallet/hedera.md - Human Approvals (Proof of Action): https://proof.holdings/md/verify/approvals.md - Telegram Bot: https://proof.holdings/md/verify/telegram-bot.md - Authentication & 2FA Verification: https://proof.holdings/md/verify/auth.md - P2P Trust Verification: https://proof.holdings/md/verify/p2p.md - Compare Verification APIs: https://proof.holdings/md/compare.md - Proof Holdings vs Twilio Verify: https://proof.holdings/md/compare/proof-vs-twilio.md - Proof Holdings vs Vonage Verify: https://proof.holdings/md/compare/proof-vs-vonage.md - Proof Holdings vs Sinch Verification: https://proof.holdings/md/compare/proof-vs-sinch.md - Proof Holdings vs Telesign: https://proof.holdings/md/compare/proof-vs-telesign.md - Proof Holdings vs Bird (MessageBird): https://proof.holdings/md/compare/proof-vs-messagebird.md - Proof Holdings vs Plivo Verify: https://proof.holdings/md/compare/proof-vs-plivo.md - Proof Holdings vs Infobip: https://proof.holdings/md/compare/proof-vs-infobip.md - Proof Holdings vs Auth0: https://proof.holdings/md/compare/proof-vs-auth0.md - Proof Holdings vs Stytch: https://proof.holdings/md/compare/proof-vs-stytch.md - Proof Holdings vs Descope: https://proof.holdings/md/compare/proof-vs-descope.md - Proof Holdings vs Okta: https://proof.holdings/md/compare/proof-vs-okta.md - Proof Holdings vs Firebase Auth: https://proof.holdings/md/compare/proof-vs-firebase-auth.md - Proof Holdings vs AWS Cognito: https://proof.holdings/md/compare/proof-vs-cognito.md - Best Authentication APIs 2026: https://proof.holdings/md/compare/best-auth-apis.md - Proof Holdings vs Cisco Duo: https://proof.holdings/md/compare/proof-vs-duo.md - Best 2FA & MFA APIs 2026: https://proof.holdings/md/compare/best-2fa-mfa.md - Proof Holdings vs Slack Approval Bots: https://proof.holdings/md/compare/proof-vs-slack-approval-bots.md - Proof Holdings vs Retool: https://proof.holdings/md/compare/proof-vs-retool.md - Proof Holdings vs n8n: https://proof.holdings/md/compare/proof-vs-n8n.md - Proof Holdings vs Zapier: https://proof.holdings/md/compare/proof-vs-zapier.md - Proof Holdings vs Windmill: https://proof.holdings/md/compare/proof-vs-windmill.md - Proof Holdings vs Inngest: https://proof.holdings/md/compare/proof-vs-inngest.md - Proof Holdings vs HumanLayer: https://proof.holdings/md/compare/proof-vs-humanlayer.md - Best Human-in-the-Loop Approval Tools for AI Agents 2026: https://proof.holdings/md/compare/best-human-approval-ai-agents.md - KYC Alternatives: Establish Trust Without Collecting IDs: https://proof.holdings/md/compare/kyc-alternative.md - Proof Holdings vs Veriff: https://proof.holdings/md/compare/proof-vs-veriff.md - Proof Holdings vs Onfido: https://proof.holdings/md/compare/proof-vs-onfido.md - Proof Holdings vs Sumsub: https://proof.holdings/md/compare/proof-vs-sumsub.md - Proof Holdings vs Jumio: https://proof.holdings/md/compare/proof-vs-jumio.md - Proof Holdings vs Persona: https://proof.holdings/md/compare/proof-vs-persona.md - Proof Holdings vs Ondato: https://proof.holdings/md/compare/proof-vs-ondato.md - Proof Holdings vs SIWE: https://proof.holdings/md/compare/proof-vs-siwe.md - Proof Holdings vs Privy: https://proof.holdings/md/compare/proof-vs-privy.md - Proof Holdings vs Dynamic: https://proof.holdings/md/compare/proof-vs-dynamic.md - Proof Holdings vs Web3Auth: https://proof.holdings/md/compare/proof-vs-web3auth.md - Proof Holdings vs thirdweb: https://proof.holdings/md/compare/proof-vs-thirdweb.md - Proof Holdings vs Magic: https://proof.holdings/md/compare/proof-vs-magic.md - Best Wallet Verification & Web3 Auth 2026: https://proof.holdings/md/compare/best-wallet-verification.md - Electronic Signatures & the eIDAS Ladder: https://proof.holdings/md/compare/signatures.md - Proof Holdings vs DocuSign: https://proof.holdings/md/compare/proof-vs-docusign.md - Proof Holdings vs Dropbox Sign: https://proof.holdings/md/compare/proof-vs-dropbox-sign.md - Proof Holdings vs Adobe Acrobat Sign: https://proof.holdings/md/compare/proof-vs-adobe-sign.md - Best Verification APIs 2026: https://proof.holdings/md/compare/best-verification-apis.md