Available

Email Verification

Magic links and one-time codes, each backed by a proof token. We send the email from our own authenticated domain, and you get a signed proof that the link (or code) we sent to that address was used.

Proof Holdingsproof.holdings · verification api
AttestationNº 2026-0051
channelgoogle logoMagic link · one-time
challengelnk_8f2c — the link we sent was used
received14:07:22 UTC
verdictControl proventhe link we sent to the address was used
Mintedph_ctl_5e1a…b73 · ES256

Why Proof-Backed Email?

Anyone can send an OTP email. The hard parts are deliverability, lifecycle, and evidence — and every point solution you bolt on is one more supplier to manage.

DIY or a Point Email Service

Wire up sending yourself, or add a specialised email-OTP vendor — either way you carry the plumbing.

Deliverability is a full-time job

SPF, DKIM, DMARC, IP reputation. Get it wrong and codes land in spam — the funnel stalls.

A point service is one more supplier

A specialised sender works, but that's another contract, SDK, and dashboard for a single asset type.

You still own the lifecycle

Code storage, expiry, retries, rate limits — the verification logic stays on your plate.

The result is a boolean

A verified flag in your own database — no evidence you can hand to a partner or auditor.

Email Verification with Proof Holdings

One API call sends the challenge; you get back a cryptographic proof of inbox control.

Deliverability built in

We send the email from our own authenticated domain. Nothing for you to set up or warm up.

OTP or magic link, same API

Pick the UX per flow. Both routes end in the same verification and the same proof token.

Cryptographic proof token

A signed proof that the link (or code) we sent to that address was used — evidence that travels.

One supplier, every asset

The same integration verifies phone numbers and domains — social accounts and wallets are planned.

How It Works

Simple and familiar email verification flow

§ 01

Create Verification

Call our API with the email address. We send a verification email with OTP code or magic link.

§ 02

User Verifies

User either enters the OTP code or clicks the magic link to prove email control.

§ 03

Proof Generated

We verify the action and return a signed proof token: poll GET /verifications/:id, or wait on its event stream.

API Integration

Integrate email verification in minutes

1. Create Verification Request

curl -X POST https://api.proof.holdings/api/v1/verifications \
  -H "Authorization: Bearer pk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "email",
    "channel": "email",
    "identifier": "[email protected]"
  }'

2. Verify the Proof Token

# After user enters the OTP code or clicks the magic link
curl -X POST https://api.proof.holdings/api/v1/verifications/VERIFICATION_ID/submit \
  -H "Authorization: Bearer pk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "code": "847293"
  }'

Response Example

{
  "id": "507f1f77bcf86cd799439011",
  "type": "email",
  "channel": "email",
  "status": "verified",
  "identifier": "[email protected]",
  "verified_at": "2026-03-15T10:30:00Z",
  "proof": {
    "token": "eyJhbGciOiJFUzI1NiIs...",
    "expires_at": "2027-03-15T10:30:00Z"
  }
}