curl -X GET "https://api.credprotocol.com/api/v2/report/address/vitalik.eth" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch('https://api.credprotocol.com/api/v2/report/address/vitalik.eth', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
});
const report = await response.json();
console.log(`Total Value: $${report.assets.total_value_usd}`);
import requests
response = requests.get(
'https://api.credprotocol.com/api/v2/report/address/vitalik.eth',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
report = response.json()
print(f"Total Value: ${report['assets']['total_value_usd']}")
{
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"score": {
"value": 847,
"classification": "Excellent"
},
"assets": {
"total_value_usd": 125000000.50,
"tokens": [
{
"symbol": "ETH",
"name": "Ethereum",
"balance": "50000.5",
"value_usd": 100000000,
"chain_id": 1
}
],
"nfts": [
{
"name": "CryptoPunk #1234",
"collection": "CryptoPunks",
"chain_id": 1
}
]
},
"defi": {
"protocols": [
{
"name": "Aave",
"supplied": 1000000,
"borrowed": 0,
"chain_id": 1
}
],
"total_supplied": 1000000,
"total_borrowed": 0
},
"activity": {
"first_transaction": "2015-08-07T00:00:00Z",
"total_transactions": 15420,
"active_chains": [1, 137, 42161]
},
"cached": false,
"timestamp": "2024-01-15T10:30:00Z"
}
Report
Get Credit Report
Get a comprehensive credit report for an Ethereum address
GET
/
api
/
v2
/
report
/
address
/
{address}
curl -X GET "https://api.credprotocol.com/api/v2/report/address/vitalik.eth" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch('https://api.credprotocol.com/api/v2/report/address/vitalik.eth', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
});
const report = await response.json();
console.log(`Total Value: $${report.assets.total_value_usd}`);
import requests
response = requests.get(
'https://api.credprotocol.com/api/v2/report/address/vitalik.eth',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
report = response.json()
print(f"Total Value: ${report['assets']['total_value_usd']}")
{
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"score": {
"value": 847,
"classification": "Excellent"
},
"assets": {
"total_value_usd": 125000000.50,
"tokens": [
{
"symbol": "ETH",
"name": "Ethereum",
"balance": "50000.5",
"value_usd": 100000000,
"chain_id": 1
}
],
"nfts": [
{
"name": "CryptoPunk #1234",
"collection": "CryptoPunks",
"chain_id": 1
}
]
},
"defi": {
"protocols": [
{
"name": "Aave",
"supplied": 1000000,
"borrowed": 0,
"chain_id": 1
}
],
"total_supplied": 1000000,
"total_borrowed": 0
},
"activity": {
"first_transaction": "2015-08-07T00:00:00Z",
"total_transactions": 15420,
"active_chains": [1, 137, 42161]
},
"cached": false,
"timestamp": "2024-01-15T10:30:00Z"
}
Overview
Returns a comprehensive credit report including asset balances, NFT holdings, DeFi positions, and transaction history across multiple blockchain networks.Reports aggregate data from 10+ supported networks and are cached for 5 minutes.
Path Parameters
string
required
Ethereum address or ENS name (e.g.,
vitalik.eth or 0x742d35Cc6634C0532925a3b844Bc9e7595f0Ab17)Response
string
The resolved Ethereum address (checksummed)
object
Credit score summary
integer
Credit score between 300-1000
string
Score classification
object
Asset holdings across all networks
number
Total portfolio value in USD
array
List of token holdings
array
List of NFT holdings
object
DeFi positions and activity
array
Active DeFi protocol positions
number
Total value supplied to lending protocols
number
Total value borrowed from lending protocols
object
Transaction activity summary
string
Date of first transaction
integer
Total number of transactions
boolean
Whether the response was served from cache
Credit Events
The full report includes acredit_events section with the address’s lending-protocol event history. See Chains & Protocols for coverage.
string
The least complete
coverage of any pool. complete means every pool’s history is complete and current.object
Event counts across all covered pools:
supply, withdraw, borrow, repay, liquidationarray
One entry per covered lending pool contract. Protocols with several markets on a chain (Compound) have one entry per market.
string
aave_v2, aave_v3, compound_v3 or compound_v2string
Market name for protocols with several markets per chain (for example
cUSDCv3, cDAI); null for single-pool protocolsboolean
Whether this pool’s repayments and liquidations count towards the score.
false for a protocol still being validated: its events are shown but do not move the score.integer
Chain the pool is deployed on
string
How complete the event history is for this pool. See the table below.
integer
The block the event history is complete through.
null if the pool has not been read yet.object
Event counts for this pool, by event type. A count is
null for an event type that is not collected for the protocol (Compound V2 supply and withdraw), which is different from 0.string
Timestamp of the earliest event, or
null if there are nonestring
Timestamp of the most recent event, or
null if there are noneobject
{"status": "not_applicable"} with a reason. Defaults are not observable on overcollateralized protocols.object
{"status": "not_applicable"} with a reasonarray
Lending protocols whose event history is not yet available, so that a missing record is not read as a clean one
boolean
Whether these events contribute to the address’s Cred Score
Coverage
| Value | Meaning |
|---|---|
complete | The event history is complete and current |
partial | The history is complete through synced_to_block but not yet current |
pending | The address is being read for the first time. Request the report again shortly. |
failed | The pool could not be read. Counts for this pool are not available. |
The first report for an address with a long borrowing history may return
pending while its events are read in the background, usually within a few seconds. Until coverage is complete, the counts, and any score that depends on them, may understate the address’s history. Check coverage before relying on count_repayments or count_liquidations. An incomplete report is never cached for more than 30 seconds.Example
"credit_events": {
"coverage": "complete",
"feeds_score": true,
"totals": { "supply": 5, "withdraw": 0, "borrow": 7, "repay": 4, "liquidation": 0 },
"pools": [
{
"protocol": "aave_v3",
"chain_id": 1,
"market_address": "0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2",
"market": null,
"feeds_score": true,
"coverage": "complete",
"synced_to_block": 26080712,
"counts": { "supply": 5, "withdraw": 0, "borrow": 7, "repay": 4, "liquidation": 0 },
"first_event_at": "2025-03-08T08:24:47+00:00",
"last_event_at": "2026-09-01T16:59:23+00:00"
},
{
"protocol": "compound_v3",
"chain_id": 1,
"market_address": "0xc3d688b66703497daa19211eedff47f25384cdc3",
"market": "cUSDCv3",
"feeds_score": false,
"coverage": "complete",
"synced_to_block": 26080712,
"counts": { "supply": 2, "withdraw": 1, "borrow": 3, "repay": 3, "liquidation": 0 },
"first_event_at": "2025-06-11T10:02:35+00:00",
"last_event_at": "2026-08-20T21:14:59+00:00"
},
{
"protocol": "compound_v2",
"chain_id": 1,
"market_address": "0x39aa39c021dfbae8fac545936693ac917d5e7563",
"market": "cUSDC",
"feeds_score": false,
"coverage": "complete",
"synced_to_block": 26080700,
"counts": { "supply": null, "withdraw": null, "borrow": 1, "repay": 1, "liquidation": 0 },
"first_event_at": "2021-02-03T14:40:11+00:00",
"last_event_at": "2021-05-19T07:12:44+00:00"
}
],
"defaults": { "status": "not_applicable", "reason": "..." },
"delinquencies": { "status": "not_applicable", "reason": "..." },
"not_covered": []
}
Supported Networks
Reports aggregate data from the following networks:| Network | Chain ID |
|---|---|
| Ethereum | 1 |
| Polygon | 137 |
| Arbitrum | 42161 |
| Optimism | 10 |
| Base | 8453 |
| Avalanche | 43114 |
| BNB Chain | 56 |
| Fantom | 250 |
| zkSync | 324 |
| Linea | 59144 |
curl -X GET "https://api.credprotocol.com/api/v2/report/address/vitalik.eth" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch('https://api.credprotocol.com/api/v2/report/address/vitalik.eth', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
});
const report = await response.json();
console.log(`Total Value: $${report.assets.total_value_usd}`);
import requests
response = requests.get(
'https://api.credprotocol.com/api/v2/report/address/vitalik.eth',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
report = response.json()
print(f"Total Value: ${report['assets']['total_value_usd']}")
{
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"score": {
"value": 847,
"classification": "Excellent"
},
"assets": {
"total_value_usd": 125000000.50,
"tokens": [
{
"symbol": "ETH",
"name": "Ethereum",
"balance": "50000.5",
"value_usd": 100000000,
"chain_id": 1
}
],
"nfts": [
{
"name": "CryptoPunk #1234",
"collection": "CryptoPunks",
"chain_id": 1
}
]
},
"defi": {
"protocols": [
{
"name": "Aave",
"supplied": 1000000,
"borrowed": 0,
"chain_id": 1
}
],
"total_supplied": 1000000,
"total_borrowed": 0
},
"activity": {
"first_transaction": "2015-08-07T00:00:00Z",
"total_transactions": 15420,
"active_chains": [1, 137, 42161]
},
"cached": false,
"timestamp": "2024-01-15T10:30:00Z"
}
Performance
- Response Time: Typically 3-10 seconds depending on activity
- Caching: Results cached for 5 minutes per address