- Funds take the form of a custom ERC20 token
- Crowdfunded projects have a funding goal
- When a funding goal is not met, customers are be able to get a refund of their pledged funds
- dApps using the contract can observe state changes in transaction logs
- Optional bonus: contract is upgradeable