Evidence

Check it yourself.

Twelve remittances were sent, one of them real USDC on Ethereum mainnet from an email sign-in. Eight were proven and settled — the school holds 19 KSU. Five were refused on-chain: four because the deposit reverted on Ethereum, one because it was sent for an exam fee and this school is registered for tuition, dormitory and books. Every hash is on a public explorer, along with every address below. The remaining refusals are covered by the test suite, and each row says which is which.

State right now

 

reading…

 

reading…

 

reading…

 

reading…

 

reading…

 

reading…

 

reading…

 

reading…

The crossing that settled

  1. Deposit on Ethereum Sepolia

    Transaction
    0x0a31dd52…b2c02e2b
    Block
    11,604,757
    Amount
    12.000000 USDC
    Gateway
    0x1C2152e3…Ef9Ab053
  2. Attestation and proof

    Waited
    7m 30s
    Transaction index
    139
    Merkle siblings
    8
    Continuity roots
    4
  3. Verified and settled on Creditcoin CC3 Testnet

    Transaction
    0x9c0857ec…de550307
    Block
    5,405,280
    Gas
    441,364
    Paid to
    0x92E8B717…56Dfa51b

What it refuses

A contract is only as good as what it turns away.

AttemptResultSelector

Prove a remittance that reverted on Ethereum

The proof was valid — the transaction really is in that block. Without the receipt-status check this would have paid out.

SourceTransactionFailed()

on-chain, Creditcoin

0xc60cdba1

Submit the same proof twice

The beneficiary is paid exactly once. The query id is burned on first use.

Query already processed

test/FullFlow.t.sol

—

Point the source config at a look-alike USDC

Sepolia hosts a second contract whose name, symbol and decimals all read USDC. Only the pinned address is accepted.

NoCanonicalTransfer()

test/FullFlow.t.sol

0xe76066ff

Send the canonical token somewhere other than the treasury

The Transfer recipient must equal the registered treasury.

NoCanonicalTransfer()

test/Kirogi.t.sol

0xe76066ff

Present a proof the verifier rejects

Tampered bytes never reach the business logic.

Proof of inclusion verification failed

test/Kirogi.t.sol

—

Redirect a proof to a different settlement partner

The beneficiary comes from the proven gateway log, not from the submitter.

unrelated partner receives 0

test/FullFlow.t.sol

—

The first row happened on the live network. Its source transaction is 0xb17c17de…482606e0 — status 0x0 on Ethereum, and Creditcoin returned 0xc60cdba1.

Deployment

Ethereum Sepolia

Gateway
0x1C2152e3…Ef9Ab053
Treasury
0x86CF30f7…77C7366F
USDC
0x1c7D4B19…379C7238
chainKey
1

Creditcoin CC3 Testnet

KirogiASC
0x4Ea7D8d6…C3cFcD45
Pool
0xC471E417…dd37e8e3
KSU
0xA57eEa3D…0b93a441
BlockProver
0x00000000…00000FD2