Whitepaper · v1.1

CreditPass

Cross-Chain Credit Passport

Your repayment history on Ethereum is your credit score on Creditcoin — verified cryptographically via the Attestcoin Protocol. No oracle, no intermediary, just math.

01 — The Problem

On-chain repayment history is trapped on the chain where it happened. A borrower with a perfect repayment record on Ethereum is invisible on Creditcoin — treated as a new borrower with no credit history, penalized with high interest rates and low borrowing limits.

Traditional credit infrastructure relies on centralized credit bureaus and off-chain data. DeFi lending protocols rely on collateral ratios alone — they cannot assess repayment history across chains. Every chain is a silo. Every borrower starts from zero.

02 — The Solution

CreditPass uses the Attestcoin Protocol to cryptographically verify Sepolia loan repayment transactions on Creditcoin. A smart contract on Creditcoin verifies that a transaction occurred on Ethereum using only on-chain precompiles — no Chainlink, no off-chain oracle, no trusted intermediary.

Verified repayments update the borrower's credit score on Creditcoin. A lending contract reads this score to determine interest rates and borrowing limits. Better repayment history on Ethereum means better loan terms on Creditcoin.

03 — Architecture

Source Chain — Ethereum Sepolia

LoanSource.sol — A lending contract that records loan repayments. Emits Repayment(address borrower, uint256 amount, uint256 timestamp) events. This is the contract whose transactions the Attestcoin Protocol verifies.

Destination Chain — Creditcoin Testnet

CreditPass.sol — The core contract. It:

  1. 1. Receives proof data (generated by USC SDK / proof builder API)
  2. 2. Calls BlockProver precompile (0x...0FD2) to verify the proof
  3. 3. Calls ChainInfo precompile (0x...0fd3) for chain validation
  4. 4. Decodes the verified transaction data (borrower address, repayment amount)
  5. 5. Updates the borrower's credit score (mapping: address → uint256)
  6. 6. Mints or updates the soulbound NFT passport via CreditPassNFT.mintOrUpdate()
  7. 7. Supports batch verification for importing multiple repayments at once
Lending — Creditcoin Testnet

CreditLender.sol — A lending contract that reads the borrower's credit score from CreditPass, determines interest rate (lower score = higher rate) and max borrow amount, accepts CTC collateral, and issues loans in testnet tokens.

Soulbound NFT — Creditcoin Testnet

CreditPassNFT.sol — A non-transferable ERC721 that represents the borrower's credit passport. Minted on first verified repayment, updated on each subsequent verification. All transfer functions revert (soulbound). On-chain metadata includes score, tier, verified repayment count, and total verified amount as NFT traits.

Frontend — Next.js + Tailwind CSS

Dashboard with credit score display, score tier badge, repayment history log, available loan terms, and the verification flow. Wagmi + Ethers.js for wallet connection and client-side transaction signing.

04 — Attestcoin Protocol Integration

The Attestcoin Protocol is load-bearing — without it, there is no product. Every credit score update requires:

  1. 1. Cross-chain proof generation — Sepolia block headers and Merkle proofs are generated using the USC SDK (@gluwa/usc-sdk).
  2. 2. On-chain verification — The BlockProver precompile (0x0000000000000000000000000000000000000FD2) validates the Sepolia block header and Merkle proof on Creditcoin.
  3. 3. Transaction decoding — The verified transaction data is decoded to extract the borrower address and repayment amount.
  4. 4. Score update — The CreditPass contract uses the decoded data to update the borrower's credit score, which the lending contract reads to determine loan terms.

Verification completes in ~15 seconds (one Creditcoin block). Batch verification supports up to 10 queries, enabling importing multiple repayment histories at once. The CC3 Testnet supports Sepolia (chainkey 1) and Ethereum Mainnet (chainkey 3).

05 — Credit Scoring

The credit score is a simple linear formula:

score += verified_repayment_amount × weight

Score tiers determine loan terms:

0 — No History20% APR · max 10 tCTC
300+ — Limited15% APR · max 50 tCTC
600+ — Verified Borrower8% APR · max 100 tCTC
800+ — Premium5% APR · max 500 tCTC

06 — Soulbound NFT Passport

Each verified borrower receives a soulbound NFT — a non-transferable ERC721 token that serves as their on-chain credit passport. The NFT is minted on the first verified repayment and its metadata is updated automatically on each subsequent verification.

The NFT's on-chain metadata includes:

  • Score — current credit score (0–950)
  • Tier — No History / Bronze / Silver / Gold / Platinum
  • Verified Repayments — count of cross-chain verified repayments
  • Total Verified Amount — cumulative verified repayment volume (in wei)

Because the NFT is soulbound, it cannot be transferred or sold — it is permanently bound to the borrower's address. This prevents credit score fraud (buying someone else's reputation) and creates a portable, tamper-proof on-chain identity that other protocols can integrate with.

07 — The Circular Flow

Repayments on Creditcoin can themselves be verified back on Ethereum — creating a circular credit-building loop. Each chain strengthens the borrower's position on the other. This transforms Creditcoin from a siloed chain into a cross-chain credit layer, where reputation flows freely between ecosystems.

08 — Why This Matters

DeFi lending today is collateral-locked — you can only borrow against what you put up. CreditPass introduces reputation-based lending to cross-chain DeFi: borrow on Creditcoin backed by your repayment history on Ethereum.

The Attestcoin Protocol makes this possible without oracles. The verification is mathematical — a smart contract proving something happened on another chain using only cryptographic proofs. This is the foundation of trustless cross-chain credit.