Skip to main content

Quickstart

Get from zero to your first reputation query in under 5 minutes.

1. Get an API Key

  1. Go to portal.crowdproof.id
  2. Connect your wallet (MetaMask, WalletConnect, Coinbase Wallet, or Rainbow)
  3. Navigate to API Keys in the sidebar
  4. Click Create API Key — copy the key immediately (it's only shown once)

Your API key will look like: did_live_abc123...

tip

All API requests require the X-API-Key header. The only public endpoints are /health, /api/v1/identity/register, and /swagger.

2. Install an SDK

npm install @decentra-id/sdk
import { DecentraID } from "@decentra-id/sdk";
const client = new DecentraID({ apiKey: "did_live_...", network: "mainnet" });

3. Query Your First Score

const scores = await client.reputation.getScores("0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045");

for (const s of scores) {
console.log(`${s.category}: ${s.score}/1000 (${s.tier})`);
}

Response

{
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"scores": [
{ "category": "DEFI_LENDING", "score": 742, "confidence": 0.91, "tier": "High" },
{ "category": "GOVERNANCE", "score": 890, "confidence": 0.95, "tier": "Very High" }
]
}

4. Generate a ZK Proof

Prove a score exceeds a threshold without revealing the actual score:

const proof = await client.proofs.generate({
subject: "0x1234...",
claim: "score_above_threshold",
threshold: 700,
category: "DEFI_LENDING",
});

const result = await client.proofs.verify(proof.proofData);
console.log(result.valid); // true

5. Set Up Webhooks

Receive push notifications when scores change:

curl -X POST https://crowdproof-api.azurewebsites.net/api/v1/webhooks \
-H "X-API-Key: did_live_..." \
-H "Content-Type: application/json" \
-d '{"url": "https://your-app.com/webhooks/crowdproof"}'
caution

Save the secret from the response — it's only shown once. Use it to verify HMAC-SHA256 webhook signatures.

Next Steps