Decentralized Identity
CrowdProof uses the did:ethr method to create portable, self-sovereign identities linked to Ethereum wallet addresses.
Register a DID
Registration is a public endpoint — no API key required:
POST /api/v1/identity/register
Content-Type: application/json
{"walletAddress": "0x1234...", "chainId": 1}
Returns:
{
"id": "uuid",
"did": "did:ethr:0x1234...",
"createdAt": "2026-02-28T00:00:00Z"
}
Resolve a DID
GET /api/v1/identity/did:ethr:0x1234...
Update a DID Document
Requires JWT auth (Sign-In with Ethereum):
PUT /api/v1/identity/did:ethr:0x1234...
Authorization: Bearer <JWT>
Content-Type: application/json
"{ ... DID Document JSON ... }"
note
DID documents are capped at 50KB to prevent abuse.
Verifiable Credentials
List credentials
GET /api/v1/identity/did:ethr:0x1234.../credentials
Authorization: Bearer <JWT>
Issue a credential
POST /api/v1/identity/did:ethr:0x1234.../credentials
Authorization: Bearer <JWT>
Content-Type: application/json
{
"credentialType": "ReputationAttestation",
"subject": "{\"score\": 742, \"category\": \"DEFI_LENDING\"}"
}
DID Format
CrowdProof DIDs follow the pattern:
did:ethr:[chainId:]0x[40 hex characters]
Examples:
did:ethr:0x1234567890abcdef1234567890abcdef12345678did:ethr:137:0x1234567890abcdef1234567890abcdef12345678(Polygon)