Back to Projects

Blockchain

ChainPay

Smart-contract payments with transparent on-chain settlement

ChainPay project banner

Overview

ChainPay is a blockchain payment app focused on secure, transparent transfers powered by smart contracts rather than opaque payment intermediaries.

It explores how everyday payment UX can map onto decentralized settlement — users initiate a transfer, the contract enforces the rules, and the ledger records the outcome.

Useful as a portfolio piece for payment/Web3 interviews and as a sandbox for experimenting with Solidity + Web3.js payment flows.

My Role

Designed and implemented the payment smart contracts, JavaScript/Web3.js client integration, and the deployed demo experience on Vercel.

Tech Stack

BlockchainSolidityWeb3.jsJavaScript

Key Features

  • Smart-contract-enforced payment transfers
  • Transparent on-chain transaction records
  • Web3.js client for wallet-connected payments
  • Clear success/failure feedback after each transfer
  • Deployed demo suitable for live walkthroughs
  • Focused payment workflow without unnecessary product noise

Challenges & Solutions

  • Challenge

    Making payment confirmation UX understandable for users who aren't used to gas fees and pending states.

    How I solved it

    Added explicit pending → confirmed messaging and disabled repeat submits until the prior transaction resolved.

  • Challenge

    Preventing accidental double-sends when users clicked pay multiple times under latency.

    How I solved it

    Locked the action button during in-flight transactions and keyed UI updates off transaction hashes.

  • Challenge

    Keeping Solidity payment logic minimal while still demonstrating a real end-to-end flow.

    How I solved it

    Scoped the contract to core transfer semantics and invested polish in the client layer where interview storytelling is clearest.