Inspiration

To borrow $3,000 in DeFi, you often need $4,500 locked as collateral. That’s not capital efficiency, it’s a pawn shop. Traditional finance solved this by separating funding from risk: insurers don’t hold your house to guarantee it. DeFi never built that layer. Recourse does.

What it does

Recourse is a cross-chain underwriting market on Creditcoin. Underwriters sell contingent liability against obligations on other chains, backed by collateral that never leaves its home chain, verified live, cryptographically, through the Attestcoin Protocol's Native Query Verifier precompile. No bridge. No custodian. No oracle operator to trust.

How we built it

┌───────────────────── SEPOLIA (source chain — "home chain capital") ─────────────────────┐
│  MockUSDC.sol                                                                            │
│  HomeChainBond.sol                                                                       │
│    deposit(uint256) / withdraw(uint256)                                                 │
│    emits BondState(underwriter, balance, nonce)                                          │
└───────────────────────────────────────────────────────────────────────────────────────────┘
                        │ eth_getLogs (polled)
                        ▼
┌───────────────────── RUST BACKEND (backend/) ───────────────────────────────────────────┐
│  oracle-worker   watches BondState on Sepolia                                            │
│                  → GET {PROOF_API}/api/v1/proof-by-tx/{chain_key}/{tx_hash}              │
│                  → BondVerifier.submitBondProof(...) on Creditcoin                        │
│  pricing-engine  derives the correlation matrix from demo/seed.json's loss history,       │
│                  mirrors RecourseEngine's premium formula bit-for-bit                     │
│  api             axum: /obligations /underwriters/:addr(/book) /quote /spreads /events    │
└───────────────────────────────────────────────────────────────────────────────────────────┘
                        │ eth_sendRawTransaction
                        ▼
┌───────────────────── CREDITCOIN (Frontier EVM, chain id 102031) ────────────────────────┐
│  BondVerifier.sol         wraps the Native Query Verifier precompile (0x...0FD2),         │
│                           decodes the proved receipt, checks success + emitter + nonce    │
│  UnderwriterRegistry.sol  grade-1 (seizable) + grade-2 (freshness-gated), standing         │
│  CorrelationOracle.sol    uint16[8][8] rho matrix, basis points                            │
│  RecourseEngine.sol       obligations, lines, portfolio risk, premium, claims              │
└───────────────────────────────────────────────────────────────────────────────────────────┘
                        │ logs
                        ▼
┌───────────────────── REACT FRONTEND (frontend/) ─────────────────────────────────────────┐
│  /desk      capacity meter, grade-1/grade-2 split, write-line quote preview               │
│  /issue     live issuance — the 90-second demo, driven by /events (SSE)                   │
│  /market    obligations by economy, live premiums, cover written                          │
│  /spreads   cost in bps to guarantee each economy, right now                              │
└───────────────────────────────────────────────────────────────────────────────────────────┘

Challenges we ran into

  1. Correlation math overflows
  2. Proof latency was too long. ## Accomplishments that we're proud of I'am proud of many thingd but mostly for finally deploying 'Recourse' to creditcoin testcoin ## What we learned

What's next for Recourse

Built With

Share this project:

Updates

Submission history