Producer / one-time verification

Sign up. Verify. Carry it everywhere.

One signup, one identity check, one background check — and the producer has a portable, signed identity passport. They never re-do KYC for another carrier again.

9:41
Good morning,Margaret
MW
bind.
KYA VERIFIED
EXPIRES 04.21.2027
Producer / NPN
M. Whitfield
18293047
Methodologyprototype-v1.0
Wallet 0xa31f…d2bc · Soulbound #00041
Verificationpassed
Identity
VERIFIED · 04.21.2026
VIEW
Document
DRIVER'S LICENSE · STATE OF FL
VIEW
Liveness
VERIFIED · 04.21.2026
VIEW
Background
CLEAR · 04.21.2026
VIEW
Sanctions / OFAC
STUBBED · PROTOTYPE-V1.0
VIEW
Carrier reads4 in last 30 days
Northwind Mutual
04.30.2026 · 09:42 UTC
VIEW
Cardinal Life
04.28.2026 · 14:11 UTC
VIEW
Beacon Health
04.22.2026 · 08:05 UTC
VIEW
Summit Brokerage
04.18.2026 · 16:33 UTC
VIEW
01Producer dashboard
9:42
‹ STEP 2 OF 3
Verify your identity

Bind will capture your selfie, scan your government ID, and confirm liveness. None of the raw data is stored — only the verification outcome and an opaque reference ID.

Tap to scan ID
DRIVER'S LICENSE OR PASSPORT
Extracted from document
Document type
Driver's LicenseEDIT
Issuing state
FloridaEDIT
Expires
08.14.2029EDIT
Match confidence
99.7%
SELFIE CAPTURED · LIVENESS PASSED
VERIFICATION REF / bind_idv_8f2d4a1c9e
02Identity verified
9:43
Background check
Running
Final checks before we mint your passport.

Bind runs a criminal background check against the name and date of birth captured in the previous step. The sanctions and PEP screen is stubbed in this prototype. On pass, three signed events are anchored on Base Sepolia and a soulbound token is minted to the producer's wallet.

Running
Identity verifiedVERIFIED
Document verifiedVERIFIED
Liveness verifiedVERIFIED
Criminal backgroundCLEAR
Sanctions / OFAC / PEPSTUBBED · PROTOTYPE-V1.0
Anchor on Base SepoliaPENDING
WALLET / 0xa31f…d2bc (EMBEDDED)
NPN / 18293047
METHODOLOGY / prototype-v1.0
03Background + anchor
9:44
Your passport is live.

KYA verified. Soulbound token minted. Three events anchored on Base Sepolia. Any registered Bind verifier can now read this passport — you don't need to approve each one.

Soulbound token
Bind Passport #00041
Expires
04.21.2027
04Passport active
Verifier / single API call

One GET request. The carrier is unblocked.

Carriers don't log into a Bind dashboard. They hit one endpoint with an API key and get back a synchronous, signed bundle: status, methodology, opaque verification references, full event history. They skip their own duplicate identity and background work. That's the value exchange.

B
bind verifier API · Northwind Mutual
LIVE · 200 OK
Request
GET /api/verify/passport/18293047
HOST api.bind.so
AUTH Bearer bk_live_Nw1nd_••••••••3a9f
RESPONSE TIME · 287 MS · SYNCHRONOUS
Response · application/json
{
"npn": "18293047",
"status": "verified",
"methodology_version": "prototype-v1.0",
"verified_at": "2026-04-21T14:08:11Z",
"expires_at": "2027-04-21T14:08:11Z",
"wallet": "0xa31f4d2bc7e891f4...",
"soulbound_token_id": 41,
"events": [
{ "type": "KYA_VERIFIED", "anchored_tx": "0xa31f...91f4" },
{ "type": "NPN_BOUND", "anchored_tx": "0x771c...a02f" },
{ "type": "PRODUCER_TERMS_ACCEPTED", "anchored_tx": "0x4e29...8c11" }
],
"verification_refs": {
"identity_check": "bind_idv_8f2d4a1c9e",
"background_check": "bind_bgc_3a91c7e4d2",
"sanctions_screen": "stubbed"
},
"signed_jwt": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9..."
}
Bundle verified. JWT signature valid. Hashes match chain.
RESPONSE 287 MS · ASYNC PASSPORT_ACCESSED ANCHORED 1.4 S LATER
INTEGRATION · ONE · GET
What Northwind does next.

Northwind's contracting system reads the bundle, sees the producer is verified under prototype-v1.0, and decides whether they accept that methodology.

If yes, Northwind skips their own identity and background steps. The producer is appointed in minutes instead of weeks.

Northwind never logs in. They never see a UI. They never wait on the chain. The whole integration is one HTTP call.

Verification flow / live

Watch a verification, end to end.

A wallet is provisioned. Identity is verified. Background is cleared. Three signed events, one soulbound token, hashes anchored on Base Sepolia. Total elapsed time: under two minutes.

SCENE 01
Signup + NPN entry
1 wallet provisioned / 6 sec
SCENE 02 / NOW
Identity capture
selfie + doc + liveness / 38 sec
SCENE 03
Background + chain anchor + soulbound mint
3 events / 22 sec
SCENE 04
Carrier API read + PASSPORT_ACCESSED
1 event / 287 ms
Now playingScene 02 · Margaret completes identity verification
00:44 / 01:13
INFRASTRUCTURE / WHY ON-CHAIN

The record outlives every party that wrote to it.

We anchor signed events on a public chain — not a private database — for one reason: this record needs to outlive any single party, including us.

Every carrier that reads a passport independently validates the chain. Every validation reinforces the network. Trust does not compound through marketing; it compounds through use.

If Bind disappeared tomorrow, the events would still be there. The hashes would still match. The producer's wallet would still hold the soulbound token. The verification history would still stand. The chain does not need us.

That is why this is infrastructure and not a service. The record lives — beyond Bind, beyond this contract, beyond any party currently on the network.

PERMANENCE
Events outlive Bind, this contract, and any single integration. They are facts in a public ledger.
NETWORK EFFECT
Every carrier that validates a passport independently confirms the chain's integrity. The proof strengthens with every read.
SOVEREIGNTY
The producer holds the wallet. The chain holds the truth. We hold neither.
Chain / event log

The proof, on the public ledger.

Below, the actual events from this session. Hashes only — never PII, never document images, never biometrics. The off-chain record is a cache; the chain is canonical.

BIND NETWORK · BASE SEPOLIASTATUS / OPERATIONALLAST EVENT 0.4 SECONDS AGO
8 EVENTS · SESSION SYNCED
BLOCK
FUNCTION
STATUS
TX HASH
DETAIL
TIME
11,492,201
anchorEvent()
CONFIRMED
0xb842...19ac
PASSPORT_ACCESSED · Northwind Mutual read NPN 18293047
JUST NOW
11,492,038
mint()
CONFIRMED
0xa31f...91f4
PassportRegistry · soulbound #00041 minted to NPN 18293047
9 MIN AGO
11,492,037
anchorEvent()
CONFIRMED
0x771c...a02f
PRODUCER_TERMS_ACCEPTED · wallet co-signed (EIP-712) · durable
9 MIN AGO
11,492,036
anchorEvent()
CONFIRMED
0x4e29...8c11
NPN_BOUND · wallet co-signed (EIP-712) · NPN 18293047
9 MIN AGO
11,492,035
anchorEvent()
CONFIRMED
0xfe11...4488
KYA_VERIFIED · methodology prototype-v1.0 · opaque verification refs
9 MIN AGO
11,489,914
anchorEvent()
CONFIRMED
0x8c00...a1ed
PASSPORT_ACCESSED · Cardinal Life read NPN 17829043
04.28.2026
11,488,402
revoke()
CONFIRMED
0x227d...7f04
KYA_REVOKED · admin · NPN 19441205 · document inconsistency on re-verify
04.20.2026
11,487,664
anchorEvent()
CONFIRMED
0x9f01...3e82
KYA_REVERIFIED · NPN 17829043 · expired 04.18.2026 · re-passed
04.18.2026