Summary
Integrate Blend Protocol repayments on testnet as loan_repaid credit events — detect genuine Repay operations on-chain and report to ZCore.
Blend is contract-first (no REST webhooks). Same adapter pattern as #17.
Scope (v1)
- Document testnet pool + asset IDs
- Script to parse Blend
Repay txs from Horizon/Soroban RPC
- Map to ZCore
POST /api/events/report with eventType: "loan_repaid"
ZCore payload
{
"apiKey": "<blend_platform_key>",
"eventType": "loan_repaid",
"walletAddress": "G<BORROWER>",
"amount": 500,
"currency": "USDC",
"txHash": "...",
"timestamp": "2026-06-20T12:00:00.000Z"
}
Score: EVENT_WEIGHTS.loan_repaid in Server/src/constants/scoring.constants.ts (max 80 pts/event).
Verification: Server/src/services/stellar.service.ts → verifyTransaction(txHash).
Deliverables
| Path |
Action |
Docs/integrations/blend-protocol.md |
Create — pool IDs, Repay op detection, examples |
scripts/integrations/blend-repay-indexer.ts |
Optional — scan recent txs, filter Repay |
Acceptance criteria
References
Summary
Integrate Blend Protocol repayments on testnet as
loan_repaidcredit events — detect genuineRepayoperations on-chain and report to ZCore.Blend is contract-first (no REST webhooks). Same adapter pattern as #17.
Scope (v1)
Repaytxs from Horizon/Soroban RPCPOST /api/events/reportwitheventType: "loan_repaid"ZCore payload
{ "apiKey": "<blend_platform_key>", "eventType": "loan_repaid", "walletAddress": "G<BORROWER>", "amount": 500, "currency": "USDC", "txHash": "...", "timestamp": "2026-06-20T12:00:00.000Z" }Score:
EVENT_WEIGHTS.loan_repaidinServer/src/constants/scoring.constants.ts(max 80 pts/event).Verification:
Server/src/services/stellar.service.ts→verifyTransaction(txHash).Deliverables
Docs/integrations/blend-protocol.mdscripts/integrations/blend-repay-indexer.tsAcceptance criteria
References