{"name":"CredMesh","description":"Four-hour, reputation-priced USDC credit for Hyperliquid traders and the agents that trade for them. On the scored HyperEVM lane each advance is allocated across borrower stake, an uncovered slice underwritten by pooled junior first-loss capital, and optional slashable guarantor coverage. Bound identities and quorum-signed evidence-committed terms from deterministic public Hyperliquid history set the line, stake, fee, premium, and uncovered allowance; existing public history can qualify without a new protocol observation window. No human approves an individual draw. Defaults consume borrower stake, guarantors, the pooled junior tranche, then senior LP NAV.","disclosure":{"product":"Algorithmically underwritten, undercollateralized trading-agent credit","claimRole":"Hyperliquid state sizes and informs the request; it is not collateral the facility can seize","recoveryMechanism":"borrower stake -> allocated guarantor coverage -> pooled junior tranche -> senior LP share price","riskHolder":"Guarantors and senior LPs accept priced default risk; senior principal is not guaranteed when uncovered credit is active"},"url":"https://credmesh.xyz","version":"0.10.0","provider":{"organization":"Unbrained Labs","url":"https://unbrained.org"},"capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":true},"supportedInterfaces":[{"url":"https://credmesh.xyz/a2a/v1","protocolBinding":"HTTP+JSON","protocolVersion":"1.0"}],"skills":[{"id":"credit-advance-onchain","name":"Credit Advance (Borrow)","description":"Build calldata for CreditFacilityV1.requestAdvance. Scored HyperEVM borrow flow: bind the trading identity, get a current public-history score snapshot, post the required stake, then POST /claims/hl/prepare and broadcast + confirm that tx to get a requestId. Pass that requestId (as receivableId or requestId - both accepted) plus the receivable oracle. After the requestAdvance tx confirms, POST /credit/advance-verify to read your advanceId, then settle. The facility and scored oracle enforce the score fee floor, S/G/U allocation, line, concentration, aggregate uncovered, reserve, utilization, and freeze controls.","inputModes":["application/json"],"outputModes":["application/json"],"endpoint":{"method":"POST","path":"/credit/advance-onchain","auth":"EIP-191"},"example":{"agentAddress":"0x... (your agent wallet)","oracle":"0x... (receivableOracle field from GET /lanes; the `to` that prepare returned)","requestId":"0x... (the requestId echoed by POST /claims/hl/prepare)","requestedAmount":20}},{"id":"credit-advance","name":"Credit Advance (Worker Bookkeeping)","description":"Worker-state bookkeeping endpoint used for development and local integration testing. Does not move on-chain capital. Not the production issuance path.","deprecated":true,"inputModes":["application/json"],"outputModes":["application/json"],"endpoint":{"method":"POST","path":"/credit/advance","auth":"EIP-191"},"example":{"agentAddress":"0x... (your agent wallet)","jobId":"uuid-of-your-claim","requestedAmount":20,"purpose":"compute","claimType":"venue_state"}},{"id":"deposit-senior","name":"Deposit Liquidity (Senior LP, Protected Yield)","description":"Deposit senior USDC into the ERC-4626 vault - the protected credit layer. Returns are priced advance fees minus realized senior credit loss; the senior tranche is the FINAL loss layer, hit only after borrower stake, guarantors, and the reserve. No APY is guaranteed. Check GET /deposit/options for both deposit lanes side by side, and GET /vault/opportunity and GET /dashboard/credit-risk before depositing. Standard ERC-4626 flow: approve + deposit.","inputModes":["application/json"],"outputModes":["application/json"],"endpoint":{"method":"GET","path":"/vault/opportunity","auth":"none"}},{"id":"deposit-junior","name":"Deposit Liquidity (Junior, First-Loss, High APY)","description":"Deposit into the junior first-loss tranche - pooled capital that absorbs uncovered default BEFORE the senior vault, in exchange for a higher share of fees. This is early-stage risk capital: high APY and wipeable. GET /junior/pool for NAV, capacity, and share price; GET /junior/position/:address for your position; the /junior/* calldata builders handle deposit, withdraw-request, and claim. Compare lanes at GET /deposit/options.","inputModes":["application/json"],"outputModes":["application/json"],"endpoint":{"method":"GET","path":"/junior/pool","auth":"none"}},{"id":"borrow-terms","name":"Borrow Terms","description":"Read the current scored borrow terms - fee in bps, unlock/expiry, and the minimum stake percentage - that your public-history score snapshot implies. Terms are per-address: GET /borrow/terms/:address returns yours, and GET /borrow indexes the whole borrow surface. GET /score/preview/:address prices any address from public history with no identity or transaction. Draw with the Credit Advance (Borrow) skill.","inputModes":["application/json"],"outputModes":["application/json"],"endpoint":{"method":"GET","path":"/borrow/terms/:address","auth":"none"}},{"id":"claim-task-certification","name":"Task Certification (EIP-712)","description":"Verify or build calldata for a payer-signed task certification. POST /claims/signed-receivable/verify checks an EIP-712 payload off-chain; POST /claims/signed-receivable/calldata returns calldata for the agent to call TaskCertificationOracle.register() on-chain. The oracle binds the receivable to facility + chainId and consumes the nonce. EIP-712 domain name (\"CredMesh.SignedReceivable\") is preserved verbatim for backwards compatibility with existing signers.","inputModes":["application/json"],"outputModes":["application/json"],"endpoint":{"method":"POST","path":"/claims/signed-receivable/calldata","auth":"none"},"example":{"payer":"0x... (payer wallet)","beneficiary":"0x... (your agent wallet)","asset":"0x... (USDC from GET /lanes)","amount":1000,"dueAt":1750000000,"nonce":"0x... (bytes32 nonce)","paymentRail":"0x... (bytes32 rail id)","facility":"0x... (escrow from GET /lanes)","chainId":"the active lane chainId from GET /lanes (e.g. 999 for HyperEVM)","signature":"0x... (payer EIP-712 signature)"}},{"id":"agent-register","name":"Register","description":"Register as an agent to start borrowing. Free. Provide your wallet address and name. No tokens or gas needed.","inputModes":["application/json"],"outputModes":["application/json"],"endpoint":{"method":"POST","path":"/agents/register","auth":"EIP-191"},"example":{"address":"0x... (your agent wallet)","name":"my-agent","trustScore":70}},{"id":"fee-quote","name":"Fee Quote","description":"Check what an advance will cost before committing. On-chain advances pay max(the contract's utilization-curve fee, the borrower's scored fee floor) (quoted live by POST /credit/advance-onchain and slippage-guarded by maxFeeBps); this route returns the worker bookkeeping-path breakdown (utilization, duration, risk, protocol split).","inputModes":["application/json"],"outputModes":["application/json"],"endpoint":{"method":"POST","path":"/credit/quote","auth":"EIP-191"},"example":{"agentAddress":"0x... (your agent wallet)","jobId":"uuid","requestedAmount":20,"purpose":"compute","claimType":"venue_state"}},{"id":"vault-position","name":"Check LP Position","description":"Check your senior vault position: share price, token balance, accrued yield.","inputModes":["application/json"],"outputModes":["application/json"],"endpoint":{"method":"GET","path":"/vault/position/:address","auth":"none"}},{"id":"marketplace-job","name":"Worker-Attested Claim (Deprecated)","description":"Compatibility job-backed claim with lower caps; new integrations should use venue_state (scored trading) instead.","deprecated":true,"inputModes":["application/json"],"outputModes":["application/json"],"endpoint":{"method":"POST","path":"/marketplace/jobs","auth":"EIP-191"},"example":{"agentAddress":"0x... (your agent wallet)","payer":"0x... (client wallet)","title":"Build API","expectedPayout":100,"durationHours":24,"category":"code"}},{"id":"discover","name":"Discover","description":"Learn how to use CredMesh. No auth needed. Start here.","inputModes":["application/json"],"outputModes":["application/json"],"endpoints":[{"method":"GET","path":"/openapi.json","description":"Machine-readable OpenAPI 3.1 spec of the whole public API"},{"method":"GET","path":"/bootstrap","description":"Live identity, stake, score, draw, verify, and settlement path"},{"method":"GET","path":"/lanes","description":"All deployment lanes (EVM, Solana, HL) with status + addresses"},{"method":"GET","path":"/deposit/options","description":"Senior + junior deposit lanes and borrow terms in one menu"},{"method":"GET","path":"/vault/opportunity","description":"Senior LP yield opportunity"},{"method":"GET","path":"/junior/pool","description":"Junior first-loss tranche state (NAV, capacity, share price)"},{"method":"GET","path":"/borrow","description":"Borrow surface index: the address-scoped terms route plus the ordered draw path"},{"method":"GET","path":"/borrow/terms/:address","description":"Scored borrow terms for one address (fee bps, unlock, stake %)"},{"method":"GET","path":"/use-cases","description":"Concrete examples (borrowers + senior/junior LPs)"},{"method":"GET","path":"/fees","description":"Current fee model and rates"},{"method":"GET","path":"/auth/info","description":"How to authenticate (EIP-191)"},{"method":"GET","path":"/health","description":"System status, chain, vault stats"},{"method":"GET","path":"/chains","description":"List active EVM chains with deployed contracts"},{"method":"GET","path":"/chain/:chainSlug/health","description":"Chain-specific contract status (slug, e.g. hyperevm)"},{"method":"GET","path":"/chain/:chainSlug/credit-check/:address","description":"Read credit score on any chain"}]}],"defaultInputModes":["application/json"],"defaultOutputModes":["application/json"],"authentication":{"schemes":["ethereum-signature"],"optional":true},"agentBootstrap":{"gasModel":"borrower-paid","tokenModel":"reputation-priced-undercollateralized-credit","description":"Direct issuance: a bound trading identity with a current evidence-committed public-history score snapshot and an amount-bound Hyperliquid request calls CreditFacilityV1.requestAdvance using /credit/advance-onchain calldata. The worker quotes, builds calldata, and indexes events; contracts remain authoritative.","bootstrapGuide":"https://credmesh.xyz/bootstrap"},"paymentProtocols":{"x402":{"supported":true,"description":"x402 (Coinbase gasless USDC) is a payment rail declared on job claims; discover active rails at GET /payment/methods. Activates on Base deployment.","endpoint":null,"networks":["eip155:84532","eip155:8453"]}},"onchain":{"network":"hyperevm","chainId":999,"explorer":"https://app.hyperliquid.xyz/explorer","contracts":{"token":"0xb88339CB7199b77E23DB6E890353E22632Ba630f","escrow":"0x7cbcadf6f0b543a2f92e765651582deb1aec48a0","vault":"0x7cbcadf6f0b543a2f92e765651582deb1aec48a0","identityRegistry":"0x0d3bdc1d3cdeb91380074b7fa7605e2b7f2277c4","creditScorer":"0xdc514f26e25857ad652cb3c91aa4a74e206779e5","reputationRegistry":null,"receivableOracle":"0x8be4288b3ae44d7b33b9133e4703777d693d9a8e","creditOracle":"0x72e50b56b4ad494e8912a6e9a0a2608ff6872bc7","guaranteePool":"0xcd5fe7d1b87a3a7eb43acd96b2d7ee9e2c16cba6","creditReserve":null,"reputationOnlyOracle":null,"taskCertificationOracle":"0x3ee2fa9c3e451b6dea04588a4dbe564b1c0e4dcb","governance":"0x9419235eDa1393A53B38e7FbE028127961A30e91","treasury":"0xbcf24036824f77e4e34f2df9063374cc1f6fc86e"}},"lanes":[{"id":"sepolia","name":"Sepolia (Ethereum L1)","type":"evm","status":"legacy","readiness":"configured","executable":false,"chainId":11155111,"explorer":"https://sepolia.etherscan.io","description":"Ethereum Sepolia. Superseded by Base Sepolia.","contracts":{"token":"0x036CbD53842c5426634e7929541eC2318f3dCF7e","escrow":null,"vault":null,"identityRegistry":"0xb5a8d645ff6c749f600a3ff31d71cdfad518737b","creditScorer":null,"reputationRegistry":"0xfa20c33daa0bdf4d4b38c46952f2b2c95ace2ecf","receivableOracle":null,"creditOracle":null,"guaranteePool":null,"juniorTranche":null,"creditReserve":null,"reputationOnlyOracle":null,"taskCertificationOracle":null,"governance":null,"treasury":null}},{"id":"base-sepolia","name":"Base Sepolia (Testnet)","type":"evm","status":"legacy","readiness":"active","executable":false,"chainId":84532,"explorer":"https://sepolia.basescan.org","description":"Base Sepolia testnet. Reputation-lane deployment: CreditFacilityV1, ReputationCreditOracle, ERC-8004 IdentityRegistry, ReputationRegistry, USDC-backed ERC-4626 vault. Operator-underwritten by design.","contracts":{"token":"0x036CbD53842c5426634e7929541eC2318f3dCF7e","escrow":"0x159806c09bfb328632f8b72c32091dd1e64664ac","vault":"0x159806c09bfb328632f8b72c32091dd1e64664ac","identityRegistry":"0xabbe70645529cc9297a9de220cb7ccf3a18518e0","creditScorer":null,"reputationRegistry":"0x4decd0a7c0431c76f3fd294f3602b55c04acb649","receivableOracle":null,"creditOracle":"0x4744141e3a3911d20af6eabdbd6d1c3e5a69b62b","guaranteePool":null,"juniorTranche":null,"creditReserve":null,"reputationOnlyOracle":"0x105b9e691804116cbfd3c5d7e369613235fe92ff","taskCertificationOracle":"0x625ca41e901c73991b77a3789ba4ce1b32321189","governance":"0x2cc0DCA875Ad714B6bb23b06c8c4D96265BB3F4F","treasury":"0x2cc0DCA875Ad714B6bb23b06c8c4D96265BB3F4F"}},{"id":"hyperevm-testnet","name":"HyperEVM Testnet","type":"evm","status":"legacy","readiness":"reserve-gated","executable":true,"chainId":998,"explorer":"https://app.hyperliquid-testnet.xyz/explorer","description":"HyperEVM testnet. Scored-credit integration lane: bound identities, ScoreSnapshotRegistry public-history terms, fixed guarantee cohorts, a pooled junior first-loss tranche, and amount-bound credit requests. Senior U is reserve-gated.","contracts":{"token":"0x284d96321777ab85671c338bcfa590c875ebaa35","escrow":"0x9b2af17e0d36ba027fd70ba6311b9ea14af0c970","vault":"0x9b2af17e0d36ba027fd70ba6311b9ea14af0c970","identityRegistry":"0x6dd8eddb49fe430af774c1e549f6c26fff569fb4","creditScorer":"0x4d0c1827ff8f82f0904f1499f7409466f15a80dc","reputationRegistry":null,"receivableOracle":"0x7a20fd8a55252b0c5d1801ffd79b2a402a505e5d","creditOracle":"0x9d3af98dbf24b1fa49475780d1adfc6502cc37c6","guaranteePool":"0x7000a2987bf18099395643398c630967ec0b35c8","juniorTranche":"0x5eb6bc7992cfd8b2a535d98ad40d989c2d6a776b","creditReserve":null,"reputationOnlyOracle":null,"taskCertificationOracle":"0x2ee1209a2e81019e8e9f2ef14f8bcbd32b6c260b","governance":"0xb86036b633C57cd25FC488ADF0D36b3366E50351","treasury":"0x5eb6bc7992cfd8b2a535d98ad40d989c2d6a776b"}},{"id":"hyperevm","name":"HyperEVM","type":"evm","status":"live","readiness":"reserve-gated","executable":true,"chainId":999,"explorer":"https://app.hyperliquid.xyz/explorer","description":"HyperEVM mainnet. ReputationGuaranteedCreditOracle allocates borrower stake, guarantor coverage, and senior uncovered credit against score-bound Hyperliquid requests.","contracts":{"token":"0xb88339CB7199b77E23DB6E890353E22632Ba630f","escrow":"0x7cbcadf6f0b543a2f92e765651582deb1aec48a0","vault":"0x7cbcadf6f0b543a2f92e765651582deb1aec48a0","identityRegistry":"0x0d3bdc1d3cdeb91380074b7fa7605e2b7f2277c4","creditScorer":"0xdc514f26e25857ad652cb3c91aa4a74e206779e5","reputationRegistry":null,"receivableOracle":"0x8be4288b3ae44d7b33b9133e4703777d693d9a8e","creditOracle":"0x72e50b56b4ad494e8912a6e9a0a2608ff6872bc7","guaranteePool":"0xcd5fe7d1b87a3a7eb43acd96b2d7ee9e2c16cba6","juniorTranche":"0xbcf24036824f77e4e34f2df9063374cc1f6fc86e","creditReserve":null,"reputationOnlyOracle":null,"taskCertificationOracle":"0x3ee2fa9c3e451b6dea04588a4dbe564b1c0e4dcb","governance":"0x9419235eDa1393A53B38e7FbE028127961A30e91","treasury":"0xbcf24036824f77e4e34f2df9063374cc1f6fc86e"}},{"id":"solana","name":"Solana","type":"svm","status":"planned","readiness":"planned","executable":false,"cluster":"mainnet","explorer":"https://explorer.solana.com","description":"Fast settlement lane for agent advances, powered by ed25519 attestations and Solana program accounts when enabled.","programs":{"escrow":null,"attestorRegistry":null,"usdcMint":null},"bridge":null}],"outreach":{"chainId":"hyperevm","vaultAddress":"0x8a41cffc0da1f552a8b524e5ea443a11ebe52f55","explorerBase":"https://app.hyperliquid.xyz/explorer/address/","mcpPackage":"credmesh-mcp","repo":"https://github.com/unbrained-labs/credmesh"},"endpoints":{"health":"https://credmesh.xyz/health","fees":"https://credmesh.xyz/fees","lanes":"https://credmesh.xyz/lanes","agentCard":"https://credmesh.xyz/.well-known/agent-card.json","erc8004Registration":"https://credmesh.xyz/.well-known/erc8004-registration.json","agentLog":"https://credmesh.xyz/agent_log.json","dashboard":"https://credmesh.xyz","skillGuide":"https://credmesh.xyz/skill.md","skillSource":"https://github.com/unbrained-labs/credmesh/blob/main/SKILL.md","api":{"registerAgent":{"method":"POST","path":"/agents/register"},"getAgent":{"method":"GET","path":"/agents/:address"},"creditProfile":{"method":"POST","path":"/credit/profile"},"creditQuote":{"method":"POST","path":"/credit/quote"},"prepareHyperliquidCredit":{"method":"POST","path":"/claims/hl/prepare","description":"Scored lane: calldata for amount-bound HyperliquidCreditRequestOracle.prepare"},"identityBindPayload":{"method":"POST","path":"/identity/bind-payload","description":"EIP-712 trading-account binding payload"},"identityBindCalldata":{"method":"POST","path":"/identity/bind-calldata","description":"Verify the trading-account signature and build bind calldata"},"creditAdvanceOnchain":{"method":"POST","path":"/credit/advance-onchain","description":"Production: build requestAdvance calldata. receivableId = the requestId from /claims/hl/prepare; oracle = receivableOracle from /lanes"},"creditAdvanceVerify":{"method":"POST","path":"/credit/advance-verify","description":"After the requestAdvance tx confirms, returns advance.advanceId (needed to settle)"},"advanceState":{"method":"GET","path":"/facility/advance/:advanceId","description":"Read an authoritative on-chain advance (advanceId from /credit/advance-verify)"},"settleCalldata":{"method":"POST","path":"/facility/settle-calldata","description":"Exact-debt approval and settlement calldata"},"liquidateCalldata":{"method":"POST","path":"/facility/liquidate-calldata","description":"Permissionless post-expiry liquidation calldata"},"creditAdvance":{"method":"POST","path":"/credit/advance","description":"Worker bookkeeping only - does not move on-chain capital"},"stakeDeposit":{"method":"POST","path":"/stake/deposit-calldata","description":"Calldata to post score-required borrower stake"},"stakeWithdraw":{"method":"POST","path":"/stake/withdraw-calldata","description":"Calldata to withdraw stake not backing outstanding exposure"},"stakeStatus":{"method":"GET","path":"/stake/status","description":"Compatibility stake, score, and capacity surface for an agent"},"creditRisk":{"method":"GET","path":"/dashboard/credit-risk","description":"Scored U exposure, cap, reserve, freeze state, defaults, and senior loss"},"snapshotFreshness":{"method":"GET","path":"/dashboard/snapshots","description":"Score-snapshot expiry status for bound identities"},"prequalified":{"method":"GET","path":"/discovery/prequalified","description":"Public trading accounts already prequalified by the production scoring model - check if your account has a standing line"},"depositOptions":{"method":"GET","path":"/deposit/options","description":"Senior + junior deposit lanes and borrow terms in one menu"},"juniorPool":{"method":"GET","path":"/junior/pool","description":"Junior first-loss tranche state (NAV, capacity, share price)"},"borrowIndex":{"method":"GET","path":"/borrow","description":"Borrow surface index: the address-scoped terms route plus the ordered draw path"},"borrowTerms":{"method":"GET","path":"/borrow/terms/:address","description":"Scored borrow terms for one address (fee bps, unlock, minimum stake %)"},"a2aInbox":{"method":"POST","path":"/messages","description":"Inbound agent messages; returns deterministic next-step URLs"},"createJob":{"method":"POST","path":"/marketplace/jobs"},"postJob":{"method":"POST","path":"/marketplace/post"},"listOpenJobs":{"method":"GET","path":"/marketplace/open"},"submitBid":{"method":"POST","path":"/marketplace/jobs/:jobId/bid"},"completeJob":{"method":"POST","path":"/marketplace/jobs/:jobId/complete"},"treasuryDeposit":{"method":"POST","path":"/treasury/deposit"},"recordSpend":{"method":"POST","path":"/spend/record"},"onchainLookup":{"method":"GET","path":"/onchain/:address"},"solanaEvent":{"method":"POST","path":"/solana-event","description":"Solana lane bridge event-tail ingress"}}}}