Wild geese crossing a sunset sky over open sea, a city on one shore and a school on the other

The money never crossed.
The proof did.

A parent abroad pays tuition in USDC on Ethereum. Minutes later the school is paid on Creditcoin, because a contract read the deposit itself instead of being told about it. No bridge holds the money, and nobody has to be trusted to say it arrived.

It ran on public networks.

Every number below is a transaction you can open. Refusals count as much as settlements: they show what the contract will not pay for.

12deposits sent on Sepolia and Ethereum mainnet
8proven and settled on Creditcoin
5refused on-chain by the contract
1paid with real USDC on mainnet

How a remittance reaches the school.

  1. The parent pays on Ethereum

    USDC goes to a gateway with a purpose attached: tuition, dormitory or books.

  2. Creditcoin reads the deposit

    Once Ethereum's block is attested, about seven minutes later, the Attestcoin Protocol proves the payment happened and succeeded.

  3. The school is paid locally

    A settlement pool on Creditcoin pays the registered school. A purpose the school does not accept is refused.

Exam fee, 1 USDC Refused

Three minutes, real transactions.

Recorded against the live contracts on Sepolia and Creditcoin testnet.

Every hash is public.

Deposit on Sepolia
0x0a31dd52…c02e2b 12 USDC, success
Settlement on Creditcoin
0x9c0857ec…550307 12 KSU to the school, success
Ethereum mainnet, real USDC
0x2d7142ba…37da04 then 0x9ed88459…276a47. 1 USDC sent from an email-login wallet, proven and settled in block 5,433,955
Exam fee, refused
0xb03abeec…9714e9 The deposit succeeded and the proof was valid, but the school takes tuition, dormitory and books only: PurposeNotAllowed()
The batch
10 deposits: 6 settled, 4 refused on-chain. Every outcome was predicted by eth_call through the real precompile first. batch-2026-09-02-settled.json
A reverted deposit, refused
0xb17c17de…2606e0 The proof was valid and the transaction included, but its status was 0: SourceTransactionFailed()
KirogiASC on Creditcoin
0x4Ea7D8d6…cFcD45
SettlementPool v2 on Creditcoin
0xC471E417…37e8e3 Purpose enforcement and settlement count
SettlementPool v1 on Creditcoin
0x3F6d4A40…2F2A98 The first settlement, now drained
RemittanceGateway on mainnet
0x53B98C34…907f2E Verified, second source, chainKey 3
RemittanceGateway on Sepolia
0x1C2152e3…9Ab053

What the proof does not cover.

Attestcoin proves that a payment happened. Some of the story sits outside that.

  • Purpose is self-reportedThe gateway records what the sender says the money is for. The proof shows the transfer happened, not that the label is true.
  • Identity is off-chainNothing on-chain ties a beneficiary to a real person, so a sender and a recipient could be the same someone.
  • Schools are approved by an operatorThat is a trusted role. Limiting payouts to registered addresses limits transfers, not collusion.
  • Only Ethereum is readable todayAttestcoin attests Ethereum and Sepolia and nothing else yet. Another chain is a registry entry, not a rewrite.