Skip to main content

Debt Claims API

Submit and manage on-chain debt claims between wallets. Debt claims feed into the Credit History reputation score.

Submit Claim​

POST /api/v1/debt-claims
{
"creditorAddress": "0xCreditor...",
"debtorAddress": "0xDebtor...",
"claimType": "DefaultedLoan",
"amount": 1500.50,
"currency": "USDC",
"description": "Defaulted on undercollateralized loan from Aave v3 on Arbitrum.",
"evidenceTransactionHash": "0xabc123...",
"chainId": 42161,
"protocolName": "Aave V3"
}

Validation​

FieldRules
creditorAddressRequired, valid Ethereum address
debtorAddressRequired, valid Ethereum address
claimTypeDebtClaimType enum value
amountRequired, decimal ≥ 0.000001
currencyRequired, 3–5 uppercase characters (e.g., ETH, USDC, WBTC)
descriptionRequired, 10–2,000 characters
evidenceTransactionHashRequired, valid transaction hash
chainIdRequired, integer ≥ 1
protocolNameRequired, max 100 characters

Response​

{
"id": "a1b2c3d4-...",
"creditorAddress": "0xCreditor...",
"debtorAddress": "0xDebtor...",
"claimType": "DefaultedLoan",
"status": "Pending",
"amount": 1500.50,
"currency": "USDC",
"description": "...",
"evidenceTransactionHash": "0xabc123...",
"chainId": 42161,
"protocolName": "Aave V3",
"createdAt": "2026-02-28T12:00:00Z"
}

Get Claim​

GET /api/v1/debt-claims/{id}

Returns the full debt claim object by GUID.


List Claims for Debtor​

GET /api/v1/debt-claims/debtor/{address}

Response​

{
"debtorAddress": "0xDebtor...",
"totalOutstandingDebt": 3200.75,
"claimCount": 2,
"claims": [
{
"id": "...",
"creditorAddress": "0xCreditorA...",
"claimType": "DefaultedLoan",
"status": "Pending",
"amount": 1500.50,
"currency": "USDC",
"protocolName": "Aave V3",
"createdAt": "..."
}
]
}

List Claims for Creditor​

GET /api/v1/debt-claims/creditor/{address}

Response​

{
"creditorAddress": "0xCreditor...",
"claimCount": 3,
"claims": [...]
}

Dispute Claim​

POST /api/v1/debt-claims/{id}/dispute

The debtor can dispute a claim filed against them.

{
"debtorAddress": "0xDebtor...",
"reason": "This loan was repaid in full via transaction 0xdef456 on 2026-02-20."
}

Validation​

FieldRules
debtorAddressRequired, valid Ethereum address
reasonRequired, 10–2,000 characters

Response​

{
"id": "a1b2c3d4-...",
"status": "Disputed",
"resolutionNotes": "This loan was repaid in full...",
"updatedAt": "2026-02-28T12:05:00Z"
}

Resolve Claim (Admin)​

POST /api/v1/debt-claims/{id}/resolve
{
"resolutionNotes": "Verified on-chain repayment. Claim resolved in debtor's favor."
}

Validation​

FieldRules
resolutionNotesRequired, 10–2,000 characters

Response​

{
"id": "a1b2c3d4-...",
"status": "Resolved",
"resolutionNotes": "...",
"resolvedAt": "2026-02-28T12:10:00Z",
"updatedAt": "2026-02-28T12:10:00Z"
}

Withdraw Claim​

POST /api/v1/debt-claims/{id}/withdraw

The creditor can withdraw their own claim.

{
"creditorAddress": "0xCreditor..."
}

Validation​

FieldRules
creditorAddressRequired, valid Ethereum address

Response​

{
"id": "a1b2c3d4-...",
"status": "Withdrawn",
"updatedAt": "2026-02-28T12:15:00Z",
"resolvedAt": "2026-02-28T12:15:00Z"
}

Claim Lifecycle​

Pending → Disputed → Resolved
│ ↑
│ Admin ─────┘
│
└──→ Withdrawn (by creditor)

Impact on Reputation​

Debt claims directly affect the Credit History score category:

Claim StatusScore Impact
PendingMinor negative signal (unverified)
DisputedImpact paused while under review
Resolved (debtor favor)Negative impact removed
Resolved (creditor favor)Significant negative impact
WithdrawnNo impact

Multiple unresolved claims from different creditors compound the negative effect on the debtor's Credit History score.