{"x402Version":2,"name":"XRPLHub — XRPLScore","description":"On-chain creditworthiness scoring for the XRP Ledger. A 300–850 score from 8 signals, full risk reports, and ready-to-sign prebuilt XRPL transactions for 35 actions. Pay per call in RLUSD — no account, no API key, no signup.","provider":{"name":"XRPLHub.io","url":"https://www.kreditkarma.us","contact":"support@xrplhub.io"},"facilitator":"https://xrpl-facilitator-mainnet.t54.ai","network":"xrpl:0","payTo":"rs59g3amo5iT6T64Cg96XXMAWuw3WPQcLF","resources":[{"resource":"https://www.kreditkarma.us/api/x402/score","method":"GET","name":"XRPLScore — wallet creditworthiness score","description":"Get a 300–850 creditworthiness score for one XRPL wallet with an 8-signal breakdown (account age, tx history, financial health, tokens, DEX, AMM, security config, NFTs). Use it before you pay, lend to, or onboard a wallet.","scheme":"exact","asset":"524C555344000000000000000000000000000000","assetSymbol":"RLUSD","issuer":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De","network":"xrpl:0","maxTimeoutSeconds":600,"extra":{"sourceTag":804681468,"issuer":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De"},"noSignup":true,"x402Version":2,"amount":"0.020000","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","pattern":"^r[1-9A-HJ-NP-Za-km-z]{24,34}$","description":"XRPL classic address (r...) to score.","example":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De"}},"required":["wallet"]},"outputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"The address that was scored."},"score":{"type":"integer","minimum":300,"maximum":850,"description":"XRPLScore, 300–850 (absolute scale)."},"grade":{"type":"string","enum":["Building","Fair","Good","Excellent","Exceptional"]},"percentile":{"type":"number","description":"Peer percentile band, 0–100."},"signals":{"type":"object","description":"The 8 component scores, 0–100 each.","properties":{"accountAge":{"type":"number"},"txActivity":{"type":"number"},"financialHealth":{"type":"number"},"tokenEngagement":{"type":"number"},"dexActivity":{"type":"number"},"ammActivity":{"type":"number"},"securityConfig":{"type":"number"},"nftActivity":{"type":"number"}}},"methodology":{"type":"string"},"disclaimer":{"type":"string","description":"What the number is and is not: informational only, NOT a FICO score / consumer report / NRSRO rating, and not permissible for FCRA- or ECOA-governed decisions. Always present."},"dataCompleteness":{"type":"object","description":"Whether every XRPL input the score depends on was read. `complete` is always true on a 200 — the engine returns 503 (not a score) if any call could not be read, rather than folding a failure into a signal.","properties":{"complete":{"type":"boolean"},"unread":{"type":"array","items":{"type":"string"}},"source":{"type":"string"}}},"computedAt":{"type":"string","format":"date-time"}},"required":["wallet","score","grade","signals","disclaimer","dataCompleteness"]},"outputExample":{"wallet":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De","score":721,"grade":"Good","percentile":74,"signals":{"accountAge":88,"txActivity":71,"financialHealth":64,"tokenEngagement":61,"dexActivity":40,"ammActivity":12,"securityConfig":30,"nftActivity":0},"methodology":"XRPLHub XRPLScore v1.1 — 8-signal native on-chain behavioral scoring, absolute scale","disclaimer":"XRPLScore is an informational analytics signal computed only from public XRP Ledger data. It is NOT a FICO score, a consumer credit score, a consumer report, or an NRSRO rating, and must not be used for any purpose governed by the U.S. Fair Credit Reporting Act or the Equal Credit Opportunity Act.","dataCompleteness":{"complete":true,"unread":[],"source":"xrpl-mainnet-jsonrpc (xrplcluster → s1 → s2)"},"computedAt":"2026-09-04T00:00:00.000Z"}},{"resource":"https://www.kreditkarma.us/api/x402/report","method":"GET","name":"Full wallet risk report","description":"Everything the score returns plus machine-readable risk flags, ranked recommendations, and an on-chain snapshot (balance, spendable XRP, trust lines, tx count, DEX/AMM/NFT activity). One RLUSD payment = one report.","scheme":"exact","asset":"524C555344000000000000000000000000000000","assetSymbol":"RLUSD","issuer":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De","network":"xrpl:0","maxTimeoutSeconds":600,"extra":{"sourceTag":804681468,"issuer":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De"},"noSignup":true,"x402Version":2,"amount":"0.080000","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","pattern":"^r[1-9A-HJ-NP-Za-km-z]{24,34}$","description":"XRPL classic address (r...) to score.","example":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De"}},"required":["wallet"]},"outputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"The address that was scored."},"score":{"type":"integer","minimum":300,"maximum":850,"description":"XRPLScore, 300–850 (absolute scale)."},"grade":{"type":"string","enum":["Building","Fair","Good","Excellent","Exceptional"]},"percentile":{"type":"number","description":"Peer percentile band, 0–100."},"signals":{"type":"object","description":"The 8 component scores, 0–100 each.","properties":{"accountAge":{"type":"number"},"txActivity":{"type":"number"},"financialHealth":{"type":"number"},"tokenEngagement":{"type":"number"},"dexActivity":{"type":"number"},"ammActivity":{"type":"number"},"securityConfig":{"type":"number"},"nftActivity":{"type":"number"}}},"methodology":{"type":"string"},"disclaimer":{"type":"string","description":"What the number is and is not: informational only, NOT a FICO score / consumer report / NRSRO rating, and not permissible for FCRA- or ECOA-governed decisions. Always present."},"dataCompleteness":{"type":"object","description":"Whether every XRPL input the score depends on was read. `complete` is always true on a 200 — the engine returns 503 (not a score) if any call could not be read, rather than folding a failure into a signal.","properties":{"complete":{"type":"boolean"},"unread":{"type":"array","items":{"type":"string"}},"source":{"type":"string"}}},"computedAt":{"type":"string","format":"date-time"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"Machine-readable risk flags."},"recommendations":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string"},"points":{"type":"string"},"priority":{"type":"string","enum":["high","medium","low"]}}}},"snapshot":{"type":"object","properties":{"balanceXRP":{"type":"number"},"spendableXRP":{"type":"number"},"trustLines":{"type":"integer"},"txCount":{"type":"integer"},"hasMultiSig":{"type":"boolean"},"hasOffers":{"type":"boolean"},"hasAMM":{"type":"boolean"}}}},"required":["wallet","score","grade","signals","disclaimer","dataCompleteness"]},"outputExample":{"wallet":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De","score":721,"grade":"Good","percentile":74,"signals":{"accountAge":88,"txActivity":71,"financialHealth":64,"tokenEngagement":61,"dexActivity":40,"ammActivity":12,"securityConfig":30,"nftActivity":0},"methodology":"XRPLHub XRPLScore v1.1 — 8-signal native on-chain behavioral scoring, absolute scale","disclaimer":"XRPLScore is an informational analytics signal computed only from public XRP Ledger data. It is NOT a FICO score, a consumer credit score, a consumer report, or an NRSRO rating, and must not be used for any purpose governed by the U.S. Fair Credit Reporting Act or the Equal Credit Opportunity Act.","dataCompleteness":{"complete":true,"unread":[],"source":"xrpl-mainnet-jsonrpc (xrplcluster → s1 → s2)"},"computedAt":"2026-09-04T00:00:00.000Z","riskFlags":[],"recommendations":[{"action":"Add 2–3 trust lines to established issuers","points":"+18","priority":"medium"}],"snapshot":{"balanceXRP":2500.4,"spendableXRP":2480.1,"trustLines":6,"txCount":4200,"hasMultiSig":false,"hasOffers":true,"hasAMM":false}}},{"resource":"https://www.kreditkarma.us/api/x402/tx","method":"GET","name":"Prebuilt XRPL transaction (35 actions)","description":"A ready-to-sign XRPL transaction JSON for any of 35 actions (CheckCreate, Escrow, TrustSet, NFT, AMM, DEX order, MPT, multisig, DID, credentials, permissioned domains, and more). The wallet owner signs it — this never signs for anyone. Params per action: /api/mcp list_xrpl_services.","scheme":"exact","asset":"524C555344000000000000000000000000000000","assetSymbol":"RLUSD","issuer":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De","network":"xrpl:0","maxTimeoutSeconds":600,"extra":{"sourceTag":804681468,"issuer":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De"},"noSignup":true,"x402Version":2,"amount":"0.150000","inputSchema":{"type":"object","properties":{"productId":{"type":"string","enum":["multisig","regkey","depositauth","desttag","issuerdecl","issuercfg","tokenfee","trustline","trustsend","rippling","mptissue","mptsend","globalfreeze","freezeline","dexorder","dextrade","smartswap","ammlaunch","ammentry","paychannel","tickets","nftmint","nftburn","nftoffer","checkcreate","checkcash","checkcancel","desttagreq","escrow","identity","did","compliance","credentialissue","permdomain"],"description":"Which XRPL action to build. Full catalogue + per-action params: /api/mcp list_xrpl_services.","example":"checkcreate"},"account":{"type":"string","pattern":"^r[1-9A-HJ-NP-Za-km-z]{24,34}$","description":"XRPL classic address that will sign the returned transaction.","example":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De"}},"required":["productId","account"],"additionalProperties":{"type":"string","description":"Per-action parameters (destination, amount, issuer, currency, uri, ...). See list_xrpl_services."}},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"productId":{"type":"string"},"label":{"type":"string"},"tier":{"type":"string","enum":["safe","caution","blocked"]},"txjson":{"type":"object","description":"The unsigned XRPL transaction, ready for the account to sign."},"signWith":{"type":"string"},"instructions":{"type":"string"}}},"x402":{"type":"object","properties":{"success":{"type":"boolean"},"settled":{"type":"boolean"},"transaction":{"type":"string"},"network":{"type":"string"}}}}},"outputExample":{"data":{"productId":"checkcreate","label":"Create Check","tier":"safe","txjson":{"TransactionType":"CheckCreate"},"signWith":"the account's own wallet","instructions":"Sign this in your XRPL wallet."},"x402":{"success":true,"settled":true,"transaction":"F0D0…","network":"xrpl"}}},{"resource":"https://www.kreditkarma.us/api/x402/usdc/score","method":"POST","name":"XRPLScore — pay per call in USDC on Base","description":"Get a 300–850 on-chain creditworthiness score for one XRPL wallet from 8 signals (account age, tx history, financial health, tokens, DEX, AMM, security, NFTs). $0.01 in USDC on Base per call — the cheap entry point agents evaluate before a subscription plan. POST JSON body {\"wallet\":\"r...\"}.","x402Version":1,"scheme":"exact","network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xE0Ed7A30589Fec49e98F2085c7162B90FdbB83de","maxTimeoutSeconds":300,"facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","noSignup":true,"amount":"0.010000","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","pattern":"^r[1-9A-HJ-NP-Za-km-z]{24,34}$","description":"XRPL classic address (r...) to score.","example":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De"}},"required":["wallet"],"description":"JSON request body."},"outputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"The address that was scored."},"score":{"type":"integer","minimum":300,"maximum":850,"description":"XRPLScore, 300–850 (absolute scale)."},"grade":{"type":"string","enum":["Building","Fair","Good","Excellent","Exceptional"]},"percentile":{"type":"number","description":"Peer percentile band, 0–100."},"signals":{"type":"object","description":"The 8 component scores, 0–100 each.","properties":{"accountAge":{"type":"number"},"txActivity":{"type":"number"},"financialHealth":{"type":"number"},"tokenEngagement":{"type":"number"},"dexActivity":{"type":"number"},"ammActivity":{"type":"number"},"securityConfig":{"type":"number"},"nftActivity":{"type":"number"}}},"methodology":{"type":"string"},"disclaimer":{"type":"string","description":"What the number is and is not: informational only, NOT a FICO score / consumer report / NRSRO rating, and not permissible for FCRA- or ECOA-governed decisions. Always present."},"dataCompleteness":{"type":"object","description":"Whether every XRPL input the score depends on was read. `complete` is always true on a 200 — the engine returns 503 (not a score) if any call could not be read, rather than folding a failure into a signal.","properties":{"complete":{"type":"boolean"},"unread":{"type":"array","items":{"type":"string"}},"source":{"type":"string"}}},"computedAt":{"type":"string","format":"date-time"}},"required":["wallet","score","grade","signals","disclaimer","dataCompleteness"]},"outputExample":{"wallet":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De","score":721,"grade":"Good","percentile":74,"signals":{"accountAge":88,"txActivity":71,"financialHealth":64,"tokenEngagement":61,"dexActivity":40,"ammActivity":12,"securityConfig":30,"nftActivity":0},"methodology":"XRPLHub XRPLScore v1.1 — 8-signal native on-chain behavioral scoring, absolute scale","disclaimer":"XRPLScore is an informational analytics signal computed only from public XRP Ledger data. It is NOT a FICO score, a consumer credit score, a consumer report, or an NRSRO rating, and must not be used for any purpose governed by the U.S. Fair Credit Reporting Act or the Equal Credit Opportunity Act.","dataCompleteness":{"complete":true,"unread":[],"source":"xrpl-mainnet-jsonrpc (xrplcluster → s1 → s2)"},"computedAt":"2026-09-04T00:00:00.000Z"}},{"resource":"https://www.kreditkarma.us/api/x402/usdc/mpt/{mptokenIssuanceID}","method":"GET","name":"MPT issuer risk (full) — pay per call in USDC on Base","description":"Full risk view of one XLS-33 Multi-Purpose Token issuance: issuer powers (clawback, freeze, require-auth, non-transferable) plus the issuer's XRPLScore, account age, xrp-ledger.toml-verified domain, and credentials held. Live reads, cross-checked against Bithomp. Not found returns 'unknown', never 'does not exist'. $0.01 USDC on Base. Path segment: the 48-hex MPTokenIssuanceID.","x402Version":1,"scheme":"exact","network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xE0Ed7A30589Fec49e98F2085c7162B90FdbB83de","maxTimeoutSeconds":300,"facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","noSignup":true,"amount":"0.010000","inputSchema":{"type":"object","properties":{"mptokenIssuanceID":{"type":"string","pattern":"^[0-9A-Fa-f]{48}$","description":"The MPTokenIssuanceID — 48 hex chars (XLS-33 192-bit id). Passed as the last URL path segment.","example":"0641C7D1F9C6BB3B75EA31B353A54E2EFAC423498EF25045"}},"required":["mptokenIssuanceID"]},"outputSchema":{"type":"object","properties":{"found":{"type":"boolean"},"source":{"type":"object"},"issuer":{"type":"string"},"issuerPowers":{"type":"object"},"issuerRisk":{"type":"object"},"related":{"type":"array"}}}},{"resource":"https://www.kreditkarma.us/api/x402/screen/ofac","method":"GET","name":"OFAC SDN screening attestation — pay per call in USDC on Base","description":"Compare one XRPL address against a vintage-pinned OFAC SDN snapshot (exact address-string match only). Returns a factual, Merkle-anchored receipt: the list, its published version, the file SHA-256, and whether the address appeared on it. 'No match' = not on that version, NOT a statement that the address is clean or unsanctioned. Attests to process, not ground truth. Not legal/compliance advice; you keep your screening obligations.","x402Version":1,"scheme":"exact","network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xE0Ed7A30589Fec49e98F2085c7162B90FdbB83de","maxTimeoutSeconds":300,"facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","noSignup":true,"amount":"0.010000","inputSchema":{"type":"object","properties":{"address":{"type":"string","pattern":"^r[1-9A-HJ-NP-Za-km-z]{24,34}$","description":"XRPL classic address (r...) to compare against the OFAC SDN list.","example":"rnXyVQzgxZe7TR1EPzTkGj2jxH4LMJYh66"}},"required":["address"],"description":"?address=<r-address> query parameter."},"outputSchema":{"type":"object","properties":{"attestation":{"type":"object","properties":{"queryId":{"type":"string","description":"UUID. GET /api/attest/verify?queryId= for the Merkle inclusion proof once anchored."},"canonVersion":{"type":"string","enum":["ofac-screen-v1"]},"engineVersion":{"type":"string","enum":["sanction-screen-v1"],"description":"Immutable per receipt — the exact match algorithm."},"leafHash":{"type":"string","description":"64-hex SHA-256(0x00 || canonical leaf)."},"verify":{"type":"string"}}},"subject":{"type":"string"},"screenedAt":{"type":"string","format":"date-time"},"method":{"type":"string","enum":["exact-match"]},"ledgerIndex":{"type":"integer","description":"Validated XRPL ledger pinned as a time anchor; 0 if unavailable."},"lists":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["OFAC-SDN"]},"vintage":{"type":"string","description":"OFAC Publish Date of the snapshot screened against."},"sha256":{"type":"string","description":"Hash of the exact list file — makes the snapshot reproducible."}}}},"result":{"type":"object","properties":{"listed":{"type":"boolean","description":"true = the address string is on that SDN snapshot. false = it did not appear. false is NOT a statement that the address is clean, safe, or unsanctioned."},"matches":{"type":"array","items":{"type":"object","properties":{"list":{"type":"string"},"entryId":{"type":"string","description":"OFAC SDN entry UID."},"entryName":{"type":"string","description":"The SDN entry's own listed name (OFAC's published fact)."},"addressField":{"type":"string","description":"e.g. 'Digital Currency Address - XRP'."}}}}},"required":["listed"]},"statement":{"type":"string","description":"The one factual sentence: compared X against OFAC-SDN vintage V, and did / did not appear."},"canonicalLeaf":{"type":"string","description":"The exact JSON that was leaf-hashed."},"disclaimer":{"type":"string"}},"required":["attestation","subject","screenedAt","method","lists","result","statement","disclaimer"]},"outputExample":{"attestation":{"queryId":"21e9db64-1cec-49e6-9891-3402bb40db5f","canonVersion":"ofac-screen-v1","engineVersion":"sanction-screen-v1","leafHash":"cd890b5a640e37ae7e00983fd872f43daf7a88b52de3821d5bf1e23cb295c2a5","verify":"https://www.xrplhub.io/api/attest/verify?queryId=21e9db64-1cec-49e6-9891-3402bb40db5f"},"subject":"rnXyVQzgxZe7TR1EPzTkGj2jxH4LMJYh66","screenedAt":"2026-09-07T06:08:41.368Z","method":"exact-match","ledgerIndex":106817057,"lists":[{"name":"OFAC-SDN","vintage":"2026-09-04","sha256":"97d98ef8f8273db9326e3e7beb4163d2d8a171f8a0d90fb628c488b53339d340"}],"result":{"listed":true,"matches":[{"list":"OFAC-SDN","entryId":"33854","entryName":"CHATEX","addressField":"Digital Currency Address - XRP"}]},"statement":"As of 2026-09-07T06:08:41.368Z, XRPL address rnXyVQzgxZe7TR1EPzTkGj2jxH4LMJYh66 was compared against the OFAC-SDN list, published version 2026-09-04 (file SHA-256 97d98ef8…d340), and appears on it as entry 33854 (CHATEX), field 'Digital Currency Address - XRP'.","canonicalLeaf":"{\"queryId\":\"21e9db64-…\",\"subjectAddress\":\"rnXyVQzgxZe7TR1EPzTkGj2jxH4LMJYh66\",…}","disclaimer":"This receipt records one factual comparison: the address was checked against the OFAC SDN list at the published version named above, at the stated time. A \"no match\" means the address did not appear on that list version — it is not a statement that the address is clean, safe, or unsanctioned. XRPLHub is not a regulated entity, gives no legal or compliance advice, and makes no compliance decision. Using this receipt does not satisfy or reduce your own screening obligations. You are responsible for your compliance program and for verifying any result. Full terms: https://www.xrplhub.io/legal/screening"},"attestsProcessNotGroundTruth":true,"verify":"https://www.kreditkarma.us/api/attest/verify?queryId={queryId}","terms":"https://www.kreditkarma.us/legal/screening"},{"resource":"https://www.kreditkarma.us/api/x402/lending/exposure","method":"GET","name":"XLS-66 cross-broker lending exposure (full) — pay per call in USDC on Base","description":"A borrower's total XLS-66 lending exposure across ALL loan brokers in one call: outstanding by asset, loan count, broker count, impairments, defaults, plus XRPLHub's XRPLScore. The XRP Ledger has no aggregate borrower-debt object; a broker sees only its own loans. Reflects the validated ledger NOW: defaulted loans zero their own amounts and paid/defaulted loans get deleted, so absence is not proof of no borrowing history. Not underwriting or credit advice.","x402Version":1,"scheme":"exact","network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xE0Ed7A30589Fec49e98F2085c7162B90FdbB83de","maxTimeoutSeconds":300,"facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","noSignup":true,"amount":"0.010000","inputSchema":{"type":"object","properties":{"borrower":{"type":"string","pattern":"^r[1-9A-HJ-NP-Za-km-z]{24,34}$","description":"XRPL classic address (r...) of the borrower to aggregate lending exposure for.","example":"rEjXbJh2hwn2SVME1EvdCiH6TnU5TEpvf"}},"required":["borrower"],"description":"?borrower=<r-address> query parameter."},"outputSchema":{"type":"object","properties":{"borrower":{"type":"string"},"amendmentActive":{"type":"boolean","description":"false = XLS-66 not yet enabled on mainnet; response still carries the XRPLScore."},"ledgerIndex":{"type":"integer"},"ledgerCloseAt":{"type":"string","format":"date-time","nullable":true},"disposition":{"type":"string","enum":["amendment-not-active","active-exposure","history-only","no-loans-ever"],"description":"no-loans-ever = we have never observed a loan (not proof of none). history-only = loans were observed before but none are on the ledger now."},"exposure":{"type":"object","properties":{"byAsset":{"type":"object","additionalProperties":{"type":"object","properties":{"principalOutstanding":{"type":"string"},"totalValueOutstanding":{"type":"string","description":"principal + scheduled interest + mgmt fee still owed."},"loanCount":{"type":"integer"},"currency":{"type":"string"},"issuer":{"type":"string"},"mptIssuanceId":{"type":"string"}}},"description":"Keyed by asset: 'XRP', '<currency>.<issuer>', or 'MPT:<id>'."},"loanCount":{"type":"integer","description":"Loan objects visible on the ledger now."},"brokerCount":{"type":"integer","description":"distinct loan brokers."}}},"events":{"type":"object","properties":{"defaulted":{"type":"integer"},"impaired":{"type":"integer"},"overdue":{"type":"integer"},"overdueGraceExpired":{"type":"integer","description":"past NextPaymentDueDate + GracePeriod — a broker can default it now."}}},"worstStatus":{"type":"string","enum":["none","current","overdue","overdueGraceExpired","impaired","defaulted","paid"]},"earliestNextPaymentDue":{"type":"string","format":"date-time","nullable":true},"xrplScore":{"type":"integer","nullable":true},"grade":{"type":"string","nullable":true},"observation":{"type":"object","properties":{"everObservedLoans":{"type":"boolean"},"firstObservedAt":{"type":"string","format":"date-time","nullable":true,"description":"when XRPLHub first saw ANY loan for this borrower — history before this is invisible to us."},"totalLoansEverObserved":{"type":"integer"},"currentlyVisible":{"type":"integer"},"vanished":{"type":"integer","description":"loans we observed before that are no longer on the ledger (deleted by borrower or broker)."},"vanishedLastSeenDefaultedOrImpaired":{"type":"integer","description":"of the vanished, the ones last seen in default or impairment."},"note":{"type":"string"}}},"leafHash":{"type":"string","description":"SHA-256(0x00 || canonical leaf). This snapshot is Merkle-anchored on-ledger daily; verify at /api/attest/verify?queryId=."},"disclaimer":{"type":"string"}},"required":["borrower","amendmentActive","disposition","exposure","events","observation","disclaimer"]},"attestsObservedStateNotCompleteHistory":true,"amendmentGated":"LendingProtocol (XLS-66) — returns 503 until enabled on mainnet, then serves with no redeploy","verify":"https://www.kreditkarma.us/api/attest/verify?queryId={queryId}"},{"resource":"https://www.kreditkarma.us/api/x402/lending/underwrite","method":"GET","name":"XLS-66 underwriting inputs — full bundle, pay per call in USDC on Base","description":"Every input a LoanBroker needs for an XLS-66 underwriting decision in one call: cross-broker exposure, XRPLScore + grade, OFAC SDN screening with its own receipt, observation history + gaps, and one Merkle-anchored attestation over the whole bundle. FACTS ONLY — no recommended principal, rate, approve/decline, or probability of default. The broker decides. Not lending or underwriting advice.","x402Version":1,"scheme":"exact","network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xE0Ed7A30589Fec49e98F2085c7162B90FdbB83de","maxTimeoutSeconds":300,"facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","noSignup":true,"amount":"0.050000","inputSchema":{"type":"object","properties":{"borrower":{"type":"string","pattern":"^r[1-9A-HJ-NP-Za-km-z]{24,34}$","description":"the borrower's XRPL address"}},"required":["borrower"]},"factsOnlyNoRecommendation":true,"amendmentGated":"LendingProtocol (XLS-66) — 503 (with the live XRPLScore + OFAC result) until enabled on mainnet","verify":"https://www.kreditkarma.us/api/attest/verify?queryId={queryId}","disclaimer":"These are inputs for your underwriting, not a recommendation. XRPLHub does not recommend a principal, rate, or term, does not estimate probability of default, and does not approve or decline anyone. Every field is an on-ledger fact, XRPLHub's published XRPLScore, or a factual OFAC SDN list comparison. The lending decision, and responsibility for it, is entirely yours. Not lending, credit, or underwriting advice. Exposure reflects the validated ledger now — XLS-66 keeps current exposure only, a defaulted loan zeroes its own amounts, and paid/defaulted loans can be deleted, so absence is not proof of no borrowing history. The OFAC screening is a factual comparison against a named list snapshot at a stated time — a \"no match\" is not a statement that the address is clean or unsanctioned, and XRPLHub does not perform any regulated screening function."},{"resource":"https://www.kreditkarma.us/api/checkout/usdc/starter","method":"GET","name":"Starter plan — pay in USDC on Base","description":"Buy the Starter XRPLHub API plan (10,000 scored XRPL wallet-risk calls/month, 60 req/min) with USDC on Base. One signed EIP-3009 authorization — no gas, no separate on-chain tx from you — settles immediately and returns a live API key in the same response. No signup, no invoice, no polling.","x402Version":1,"scheme":"exact","network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xE0Ed7A30589Fec49e98F2085c7162B90FdbB83de","maxTimeoutSeconds":300,"facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","noSignup":true,"amount":"29.000000","inputSchema":{"type":"object","properties":{},"required":[],"description":"No parameters — the plan is fixed by the URL path."},"outputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["paid"],"description":"Always 'paid' — this response is only returned after the CDP facilitator settles the payment."},"plan":{"type":"string","enum":["starter","growth","scale"],"description":"The plan that was purchased."},"currency":{"type":"string","enum":["USDC"]},"network":{"type":"string","enum":["base"]},"invoiceId":{"type":"string","description":"Internal purchase record id."},"key":{"type":"string","description":"The live XRPLHub API key (xrs_live_...). Shown exactly once in this response — store it immediately, it cannot be retrieved again."},"expiresAt":{"type":"string","format":"date-time","description":"The key stops working at this time (30 days). Purchase again to continue — there is no auto-renew (XRPL/Base rails, no card on file)."},"termDays":{"type":"integer","description":"Days the key is valid from purchase (30)."},"note":{"type":"string"}},"required":["status","plan","currency","network","key","expiresAt"]},"outputExample":{"status":"paid","plan":"starter","currency":"USDC","network":"base","invoiceId":"clx0000000000000000000000","key":"xrs_live_ExampleKeyDoNotUseXXXXXXXXXXXXXXXX","expiresAt":"2026-10-06T00:00:00.000Z","termDays":30,"note":"Store this key now — it cannot be shown again. It works for 30 days; buy another to continue."}},{"resource":"https://www.kreditkarma.us/api/checkout/usdc/growth","method":"GET","name":"Growth plan — pay in USDC on Base","description":"Buy the Growth XRPLHub API plan (100,000 scored XRPL wallet-risk calls/month, 300 req/min) with USDC on Base. One signed EIP-3009 authorization — no gas, no separate on-chain tx from you — settles immediately and returns a live API key in the same response. No signup, no invoice, no polling.","x402Version":1,"scheme":"exact","network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xE0Ed7A30589Fec49e98F2085c7162B90FdbB83de","maxTimeoutSeconds":300,"facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","noSignup":true,"amount":"149.000000","inputSchema":{"type":"object","properties":{},"required":[],"description":"No parameters — the plan is fixed by the URL path."},"outputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["paid"],"description":"Always 'paid' — this response is only returned after the CDP facilitator settles the payment."},"plan":{"type":"string","enum":["starter","growth","scale"],"description":"The plan that was purchased."},"currency":{"type":"string","enum":["USDC"]},"network":{"type":"string","enum":["base"]},"invoiceId":{"type":"string","description":"Internal purchase record id."},"key":{"type":"string","description":"The live XRPLHub API key (xrs_live_...). Shown exactly once in this response — store it immediately, it cannot be retrieved again."},"expiresAt":{"type":"string","format":"date-time","description":"The key stops working at this time (30 days). Purchase again to continue — there is no auto-renew (XRPL/Base rails, no card on file)."},"termDays":{"type":"integer","description":"Days the key is valid from purchase (30)."},"note":{"type":"string"}},"required":["status","plan","currency","network","key","expiresAt"]},"outputExample":{"status":"paid","plan":"growth","currency":"USDC","network":"base","invoiceId":"clx0000000000000000000000","key":"xrs_live_ExampleKeyDoNotUseXXXXXXXXXXXXXXXX","expiresAt":"2026-10-06T00:00:00.000Z","termDays":30,"note":"Store this key now — it cannot be shown again. It works for 30 days; buy another to continue."}},{"resource":"https://www.kreditkarma.us/api/checkout/usdc/scale","method":"GET","name":"Scale plan — pay in USDC on Base","description":"Buy the Scale XRPLHub API plan (1,000,000 scored XRPL wallet-risk calls/month, 1000 req/min) with USDC on Base. One signed EIP-3009 authorization — no gas, no separate on-chain tx from you — settles immediately and returns a live API key in the same response. No signup, no invoice, no polling.","x402Version":1,"scheme":"exact","network":"base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","assetSymbol":"USDC","payTo":"0xE0Ed7A30589Fec49e98F2085c7162B90FdbB83de","maxTimeoutSeconds":300,"facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","noSignup":true,"amount":"499.000000","inputSchema":{"type":"object","properties":{},"required":[],"description":"No parameters — the plan is fixed by the URL path."},"outputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["paid"],"description":"Always 'paid' — this response is only returned after the CDP facilitator settles the payment."},"plan":{"type":"string","enum":["starter","growth","scale"],"description":"The plan that was purchased."},"currency":{"type":"string","enum":["USDC"]},"network":{"type":"string","enum":["base"]},"invoiceId":{"type":"string","description":"Internal purchase record id."},"key":{"type":"string","description":"The live XRPLHub API key (xrs_live_...). Shown exactly once in this response — store it immediately, it cannot be retrieved again."},"expiresAt":{"type":"string","format":"date-time","description":"The key stops working at this time (30 days). Purchase again to continue — there is no auto-renew (XRPL/Base rails, no card on file)."},"termDays":{"type":"integer","description":"Days the key is valid from purchase (30)."},"note":{"type":"string"}},"required":["status","plan","currency","network","key","expiresAt"]},"outputExample":{"status":"paid","plan":"scale","currency":"USDC","network":"base","invoiceId":"clx0000000000000000000000","key":"xrs_live_ExampleKeyDoNotUseXXXXXXXXXXXXXXXX","expiresAt":"2026-10-06T00:00:00.000Z","termDays":30,"note":"Store this key now — it cannot be shown again. It works for 30 days; buy another to continue."}}],"links":{"mcp":"https://www.kreditkarma.us/api/mcp","openapi":"https://www.kreditkarma.us/openapi.json","llms":"https://www.kreditkarma.us/llms.txt","pricing":"https://www.kreditkarma.us/pricing","freeScore":"https://www.kreditkarma.us/api/score/{wallet}","freeCredentialsAccount":"https://www.kreditkarma.us/api/credentials/account?address={wallet}","freeCredentialsIssuer":"https://www.kreditkarma.us/api/credentials/issuer?address={issuer}","freeDomainsEligible":"https://www.kreditkarma.us/api/domains/eligible?address={wallet}&domain={domainId}","freeMptRisk":"https://www.kreditkarma.us/api/mpt/{mptokenIssuanceID}","health":"https://www.kreditkarma.us/api/health","freeMptSearch":"https://www.kreditkarma.us/api/mpt/search?q={query}","freeMptIssuer":"https://www.kreditkarma.us/api/mpt/issuer?address={issuer}","freeMptAnchor":"https://www.kreditkarma.us/api/mpt/anchor","ofacScreenWithApiKey":"https://www.kreditkarma.us/api/screen/ofac?address={wallet}","screeningVerify":"https://www.kreditkarma.us/api/attest/verify?queryId={queryId}","screeningSpec":"https://www.kreditkarma.us/api/attest/anchor","screeningTerms":"https://www.kreditkarma.us/legal/screening","lendingExposureAggregateWithApiKey":"https://www.kreditkarma.us/api/lending/exposure?borrower={wallet}","lendingHistoryWithApiKey":"https://www.kreditkarma.us/api/lending/history?borrower={wallet}","lendingAttestationVerify":"https://www.kreditkarma.us/api/attest/verify?queryId={queryId}"},"errorCodes":{"payment_required":"No PAYMENT-SIGNATURE header — this is the 402 challenge.","bad_request":"Missing or invalid request parameters (see the message).","invalid_payment_payload":"PAYMENT-SIGNATURE could not be decoded, wrong x402Version, or missing `accepted`.","invoice_binding_missing":"The payment payload has no accepted.extra.invoiceId to bind the payment to.","payment_verification_failed":"The facilitator rejected the payment at /verify. You were NOT charged. See `facilitator`.","handler_failed":"The paid work failed AFTER verification but BEFORE settlement. You were NOT charged. Retry with the same PAYMENT-SIGNATURE within maxTimeoutSeconds, or fetch a new challenge.","account_not_found":"The wallet is not an activated account on XRPL mainnet. You were NOT charged.","xrpl_unavailable":"One or more XRPL calls could not be read (rate-limit / timeout / upstream error). No result was produced and you were NOT charged. Retry shortly — see `message` for which calls failed.","settlement_pending":"The result is delivered and correct; on-ledger settlement is still being retried. You were NOT double-charged.","idempotent_replay":"This Idempotency-Key (or invoiceId) was already processed — the original response is returned unchanged.","request_in_progress":"A request with this Idempotency-Key (or invoiceId) is still being processed. Retry shortly.","retired":"This endpoint is retired. Use the endpoint named in `useInstead`."},"guarantees":{"settlement":"On /api/x402/{score,report,tx}: the on-ledger payment settles ONLY after the paid work returns success. A handler failure returns error:handler_failed and does NOT charge you — retry with the same PAYMENT-SIGNATURE within maxTimeoutSeconds.","idempotency":"Send an Idempotency-Key header (or rely on the payment's invoiceId). A retried request replays the original response — you can never pay twice."}}