FundChain
How It Works

Understand the Full Process

FundChain is powered by an Ethereum smart contract that handles campaign creation, contributions, withdrawals, and refunds — all without intermediaries. Here's exactly how every part of the system works.

Transaction Flow Overview

Connect Wallet

Create / Fund

Smart Contract

Goal Met?

Withdraw / Refund

Step by Step

Campaign Lifecycle

From creation to completion, every campaign follows this transparent lifecycle governed by the smart contract.

Developer launching a campaign on laptop
Step 01
01Launch in minutes

Create a Campaign

Any Ethereum wallet holder can create a campaign by setting a funding goal (in ETH) and a deadline. The smart contract deploys your campaign on-chain — no approval process, no middlemen.

  • Connect your MetaMask or any Web3 wallet
  • Set your funding goal in ETH and campaign duration
  • Add a title, description, and banner image
  • Your campaign is live on the blockchain instantly
People shaking hands to fund a project
Step 02
02Back ideas you believe in

Fund a Campaign

Supporters contribute ETH directly to the smart contract. Every contribution is recorded on-chain with full transparency — the creator cannot touch the funds until the campaign ends successfully.

  • Browse active campaigns on the Explore page
  • Enter any ETH amount and confirm the transaction
  • Your contribution is tracked in real-time on the progress bar
  • Funds are held securely by the smart contract, not the creator
Receiving cryptocurrency funds
Step 03
03Creator receives funds

Goal Reached — Withdraw

When the deadline passes and the total raised meets or exceeds the goal, the campaign creator can withdraw all funds in a single transaction. The smart contract enforces this — only the creator can withdraw, and only after success.

  • Campaign deadline must have passed
  • Total contributions must meet or exceed the goal
  • Only the original creator wallet can call withdraw
  • Funds are transferred directly — zero platform fees
Financial protection and refund guarantee
Step 04
04Backers are fully protected

Goal Not Reached — Refund

If the campaign fails to reach its goal by the deadline, every contributor can claim a full refund of their exact contribution. The smart contract guarantees this — no partial refunds, no disputes.

  • Campaign deadline must have passed
  • Total raised must be below the goal
  • Each backer claims their own refund individually
  • 100% of your contribution is returned to your wallet
Smart Contract

Built for Trust & Security

The Crowdfunding.sol contract is built with Solidity 0.8.24 and OpenZeppelin security primitives. Every function is designed with safety-first principles.

Permissionless

Anyone with an Ethereum wallet can create or fund a campaign. No sign-ups, no KYC, no gatekeepers.

Reentrancy Protected

Built with OpenZeppelin's ReentrancyGuard to prevent exploit attacks on fund, withdraw, and refund functions.

On-Chain Transparency

Every action emits an event — CampaignCreated, Funded, Withdrawn, Refunded — all publicly verifiable on Etherscan.

Zero Platform Fees

The smart contract takes no cut. 100% of contributed funds go to the creator on success or back to backers on failure.

Immutable Rules

Campaign goal and deadline are set at creation and cannot be changed. No one — not even the creator — can modify the terms.

Trustless Escrow

Funds are held by the smart contract, not by any individual or company. Code is law — the rules execute automatically.

Contract Functions

The core smart contract exposes these public functions. Each is secured with custom error handling and reentrancy protection.

createCampaign(goal, duration)Write

Creates a new campaign with a funding goal (wei) and duration (seconds). Returns the campaign ID.

fund(campaignId)Payable

Contribute ETH to an active campaign. Reverts if campaign has ended or contribution is zero.

withdraw(campaignId)Write

Creator withdraws all funds after deadline if goal is met. Reverts for non-creators or failed campaigns.

refund(campaignId)Write

Contributor reclaims their exact contribution if campaign fails. Reverts if goal was reached.

getCampaign(campaignId)View

Returns the full Campaign struct: creator, goal, deadline, totalRaised, withdrawn status.

getContribution(campaignId, address)View

Returns the amount a specific address has contributed to a campaign.

FAQ

Common Questions

What wallet do I need?

Any Ethereum-compatible wallet like MetaMask, Coinbase Wallet, or WalletConnect-supported wallets.

What network does FundChain run on?

Currently deployed on Sepolia testnet for testing. The contract can be deployed to any EVM-compatible chain.

Is there a minimum contribution?

Any amount above 0 ETH is accepted. The smart contract will reject zero-value transactions.

What happens if a campaign fails?

If the goal is not reached by the deadline, every contributor can claim a full refund of their exact contribution.

Can the creator change the goal or deadline?

No. Once created, the goal and deadline are immutable. The smart contract enforces this permanently.

Does FundChain charge fees?

Zero platform fees. You only pay the standard Ethereum gas fee for your transaction.

Ready to try it?

Create your first campaign or fund an innovative project — all secured by Ethereum smart contracts.