Cross-border fiat↔crypto trades usually depend on trusted intermediaries or manual reconciliation. We wanted to reduce counterparty risk by enforcing order state transitions on-chain while still validating off-chain fiat payment evidence.
We implemented a Solidity `Marketplace` order state machine (`AVAILABLE -> ACCEPTED -> PAID -> COMPLETED`) and connected it to a Next.js frontend. For fiat confirmation, we integrated Flare FDC request/proof flow (`prepareRequest`, `submitRequest`, `submitProof`) and then called `recordFiatPayment` on-chain before token claim.
Tech choices were selected for fast hackathon iteration, clear separation of concerns, and deployable paths beyond demo scope.
System architecture is shown as a single cleaned diagram for readability.
The biggest learning was designing around hybrid trust boundaries: on-chain logic can be strict, but off-chain payload quality and attestation timing dominate user experience. If we extended this, we would harden secret management and replace indefinite retries with bounded retries + explicit status states.
Feel free to reach out to me through the following channels: