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​