Custom Smart Contract: OddEvenBetting Game
Built a betting game where players bet ETH on odd/even. Win = 2x payout.
Contract
Uses Chainlink VRF for randomness. Main functions:
placeBet() - player picks odd/even
fulfillRandomWords() - Chainlink callbacks, pays winners
Owner controls for funding/withdrawing. Checks 2x bet amount first.
Testing
28 Foundry tests with VRF mock. Tested wins/losses, permissions, edge cases. 95% coverage.
Deployment
Sepolia testnet. Created VRF subscription, deployed, added as consumer, funded with 0.1 ETH. Cost ~0.02 ETH.
Made helper scripts. Key learning: VRF takes ~1 minute, no instant on-chain randomness.
Works great!
GitHub: https://github.com/Jo-joVictor/Foundry-Lottery-
Etherscan: https://sepolia.etherscan.io/address/0x9e1dadfb93efb79a55b9e11e9b7b76fc57330788
1
51
Time-Based Dynamic NFT (Solidity)
Built an ERC721 where the tokenURI changes automatically every 15 seconds using block.timestamp. No transactions or oracles—metadata rotates between 3 IPFS files in real time.
Use cases: evolving NFT art, on-chain game characters, dynamic identity.
If you want to see an on-chain metadata version next, let me know.
GitHub link: https://github.com/Jo-joVictor/Foundry-JellyFishERC721.sol/tree/main
0
38
Flow Stablecoin
An overcollateralized stablecoin pegged to $1. Users lock WETH or WBTC at 200% collateral to mint FLW. If collateral drops, anyone can liquidate positions with a 10% bonus.
Stack
Solidity 0.8.20, Foundry, OpenZeppelin, Chainlink. Deployed on Sepolia.
Core Contracts
Flow.sol – ERC20 with role-based control
FLWEngine.sol – Collateral + liquidations
OracleLib.sol – Price feeds with staleness checks
Roles.sol – Access control
Highlights
Built full test suite with fuzzing. Protocol halts if oracle data is stale to prevent bad pricing. Added custom burnFrom using internal roles. Blacklisted accounts can still be liquidated to protect the peg.
Etherscan: https://sepolia.etherscan.io/address/0xd4Eb66aE2E4268Db89922066223cc82F3fB01565
1
51
Simple DAO Governance System
Built a full DAO with OpenZeppelin's Governor contract, featuring token voting, timelock controls, and treasury management.
Architecture
4 Contracts:
GovToken: ERC20 with voting (1M supply)
Governor: Proposals, voting, execution
TimeLock: 1-hour delay post-approval
Treasury: Governed contract
Flow: Propose → Vote (1 week) → Queue → Execute
Parameters
Voting: 50,400 blocks (~1 week)
Quorum: 4%
Timelock: 1 hour
Testing
Foundry tests cover governance lifecycle, access control, and state transitions.
Deployment
Sepolia testnet. TimeLock owns Treasury, admin role revoked.
Key learning: Timelock provides security - community can exit before malicious proposals execute.
Etherscan: https://sepolia.etherscan.io/address/0xdd9ABeDDCF506391e1A7587ae25fb1dD473f08D6