curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.credprotocol.com/api/v2/identity/address/vitalik.eth/attestations"
import httpx
response = httpx.get(
"https://api.credprotocol.com/api/v2/identity/address/vitalik.eth/attestations",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
identity = response.json()
kyc_grade = {s["platform"] for s in identity["gitcoin_passport"]["stamps"]} & {"Coinbase", "Holonym", "Binance"}
{
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"attestations": ["Gitcoin Passport", "ENS Name", "POAP"],
"ens": { "name": "vitalik.eth" },
"gitcoin_passport": {
"score": 34.2,
"passing": true,
"stamp_count": 2,
"stamps": [
{
"provider": "CoinbaseDualVerification",
"platform": "Coinbase",
"issued_at": "2026-09-01T10:00:00.000Z",
"expires_at": "2026-12-01T10:00:00.000Z"
},
{
"provider": "githubContributionActivityGte#120",
"platform": "Github",
"issued_at": "2026-09-01T10:00:00.000Z",
"expires_at": "2026-12-01T10:00:00.000Z"
}
]
}
}
Identity
Get Identity Attestations
Get identity attestations for an Ethereum address
GET
/
api
/
v2
/
identity
/
address
/
{address}
/
attestations
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.credprotocol.com/api/v2/identity/address/vitalik.eth/attestations"
import httpx
response = httpx.get(
"https://api.credprotocol.com/api/v2/identity/address/vitalik.eth/attestations",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
identity = response.json()
kyc_grade = {s["platform"] for s in identity["gitcoin_passport"]["stamps"]} & {"Coinbase", "Holonym", "Binance"}
{
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"attestations": ["Gitcoin Passport", "ENS Name", "POAP"],
"ens": { "name": "vitalik.eth" },
"gitcoin_passport": {
"score": 34.2,
"passing": true,
"stamp_count": 2,
"stamps": [
{
"provider": "CoinbaseDualVerification",
"platform": "Coinbase",
"issued_at": "2026-09-01T10:00:00.000Z",
"expires_at": "2026-12-01T10:00:00.000Z"
},
{
"provider": "githubContributionActivityGte#120",
"platform": "Github",
"issued_at": "2026-09-01T10:00:00.000Z",
"expires_at": "2026-12-01T10:00:00.000Z"
}
]
}
}
Overview
Returns the identity attestations behind an Ethereum address: its primary ENS name, its Gitcoin Passport score and verified stamps, and identity tokens it holds (POAPs, sybil-resistance badges, verifiable-credential NFTs) on Ethereum, Base and Polygon.The
attestations list is the same list the credit score’s Trust factor counts. The structured ens and gitcoin_passport fields add detail without changing it.Authentication
| Method | Header | Cost |
|---|---|---|
| API Token | Authorization: Bearer YOUR_API_KEY | 1 Cred Unit |
| x402 Payment | X-PAYMENT: <signed_payment> | $0.01 USDC |
Path Parameters
string
required
Ethereum address or ENS name (e.g.,
vitalik.eth or 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045)Response
string
The resolved Ethereum address
array
Attestation names:
ENS Name, Basename (when the request used a .base.eth name), Gitcoin Passport (score of 20 or more), POAP, and the identity tokens listed under Data Sourcesstring
The address’s primary (reverse-resolved) ENS name, or
nullnumber
The Passport model-based unique-humanity score
boolean
true when the score meets Passport’s unique-humanity threshold of 20 (this is what puts Gitcoin Passport in attestations)integer
Number of verified, unexpired stamps
array
The verified stamps, sorted by platform:
provider (Passport’s stamp id, e.g. CoinbaseDualVerification), platform (Coinbase, Google, Github, Holonym, Linkedin, …), issued_at and expires_at. Expired stamps are omitted.Data Sources
| Source | What it contributes |
|---|---|
| ENS | Primary name (reverse record) |
| Gitcoin Passport | Model score and verified stamps |
| Identity tokens on Ethereum, Base and Polygon | POAP, Goldfinch Unique Identity, Anima reputation tokens and other sybil-resistance or credential NFTs |
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.credprotocol.com/api/v2/identity/address/vitalik.eth/attestations"
import httpx
response = httpx.get(
"https://api.credprotocol.com/api/v2/identity/address/vitalik.eth/attestations",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
identity = response.json()
kyc_grade = {s["platform"] for s in identity["gitcoin_passport"]["stamps"]} & {"Coinbase", "Holonym", "Binance"}
{
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"attestations": ["Gitcoin Passport", "ENS Name", "POAP"],
"ens": { "name": "vitalik.eth" },
"gitcoin_passport": {
"score": 34.2,
"passing": true,
"stamp_count": 2,
"stamps": [
{
"provider": "CoinbaseDualVerification",
"platform": "Coinbase",
"issued_at": "2026-09-01T10:00:00.000Z",
"expires_at": "2026-12-01T10:00:00.000Z"
},
{
"provider": "githubContributionActivityGte#120",
"platform": "Github",
"issued_at": "2026-09-01T10:00:00.000Z",
"expires_at": "2026-12-01T10:00:00.000Z"
}
]
}
}
Use Cases
Sybil Resistance
Gate airdrops, allowlists and governance on
gitcoin_passport.passing, or on specific KYC-grade platforms among the stamps.Trust Scoring
Combine the attestations count with the credit score and the sybil analysis for a fuller trust picture.