| Schema name | CreditRiskAttestation |
| EAS revocable | yes |
| Expiry semantics | required (expiresAt is mandatory; lender re-underwrites at expiry) |
| Issued by | A wallet currently ACTIVE in LenderRegistry |
| Subject | Merchant (subjectRootUid) |
| MCP tool | verify_credit_risk |
| Verifier API | GET /v2/attestations/credit-risk/:merchantId |
| Composite read | GET /v2/underwriting-signals/:merchantId |
Network & UIDs
| Network | EAS contract | Schema UID | Explorer |
|---|---|---|---|
| Base mainnet | 0x4200000000000000000000000000000000000021 | 0xbd652f94a034edea8635b1f87d05f2b33b23c0243430c2dae91469103921c7bd | basescan · easscan schema |
| Base Sepolia | 0x4200000000000000000000000000000000000021 | resolve via chain field on /v2/attestations/credit-risk/:merchantId | sepolia.basescan |
Field reference
ABI schema string:| Field | Solidity type | Semantic | Mutability |
|---|---|---|---|
subjectRootUid | string | Subject anchor. Production form: "merchant:<merchantId>". Post-rotation: keccak256(entityType||entityId) bytes32 (legacy + new coexist during transition). | immutable per attestation |
creditTier | uint8 | Resolved credit tier at issuance. Encoded T0=0 / T1=1 / T2=2 / T3=3. Snapshot from CreditTierMappingService at mint time. | immutable per attestation |
maxCreditLineUsdCents | uint64 | Maximum credit line in USD cents (getLineCeilingUsd × 100). | immutable per attestation |
termDays | uint32 | Quoted repayment term in days. DTO layer enforces 1-1800 (5y) before mint. | immutable per attestation |
rateBps | uint32 | Quoted APR in basis points (850 = 8.50%). | immutable per attestation |
methodologyHash | bytes32 | keccak256 of the lender’s published underwriting methodology document. Cross-references the methodology registry. | immutable per attestation |
expiresAt | uint256 | Unix seconds. Required; a re-underwrite mints a new attestation. | immutable per attestation |
| Envelope field | Type | Semantic |
|---|---|---|
uid | bytes32 | Attestation UID. |
schema | bytes32 | Schema UID (above). |
attester | address | Lender’s on-chain signing wallet. Must be currently ACTIVE in LenderRegistry. |
recipient | address | Conventionally the merchant’s wallet or 0x0 (subject identity is in subjectRootUid). |
time | uint64 | Block-mined issuance time. |
expirationTime | uint64 | Mirrors expiresAt. |
revocationTime | uint64 | 0 if active. |
revocable | bool | true. |
data | bytes | ABI-encoded payload per the schema string above. |
Lender-registry mirror (lenderCurrentStatus)
The reconciler sweeps every 6 hours and mirrors the current LenderRegistry status onto every ACTIVE Schema B row. A verifier reading the Droplinked API sees:
verify_credit_risk tool and the verifier API both expose this mirror.
Read via Droplinked API
Read via viem (TypeScript)
Read via ethers (TypeScript)
Read via Cast (Foundry)
Indexer access (EAS GraphQL)
- Base mainnet: https://base.easscan.org/graphql
- Base Sepolia: https://base-sepolia.easscan.org/graphql
subjectRootUid; for scale, query the Droplinked API (GET /v2/attestations/credit-risk/:merchantId) which serves an indexed projection.
Trust assumptions
A Schema B attestation is authoritative if and only if:- The on-chain
schemamatches the mainnet UID above. - The on-chain
attesteris currentlyACTIVEinLenderRegistry. Check viaGET /v2/lenders/:lenderIdor read the Droplinked-API envelope’slenderCurrentStatusmirror. revocationTime == 0ANDexpirationTime > now.- The
methodologyHashresolves to anACTIVErow in the methodology registry for that lender — the lender’s published methodology document is the explanation surface for the verdict.
A Schema B attestation issued by a lender that has since been SUSPENDED or ARCHIVED remains on-chain ACTIVE — the chain has no opinion on the lender’s current standing. The Droplinked reconciler exposes the current registry status via
lenderCurrentStatus. Verifier-side policy decides whether to honor it. The agentic PM shadow protocol is explicit: this is a verifier decision, not a reconciler decision.Related
- Trust Fabric overview
- Schemas overview
- Lender Registry Lookup
- Methodology Registry Lookup
/v2/underwriting-signals/:merchantId— composite Schema B + C read