domain_02 / blockchain-web3
Blockchain
Writing production Solidity, building DeFi protocols, and creating decentralized applications on Ethereum and EVM-compatible chains. I believe in permissionless, trustless systems and the open financial future they enable.
EthereumSolidityDeFiNFTsSmart ContractsWeb3
ethereum_network
0x4a2b...c8d1✓ confirmed
0x9f3e...7a12pending
0x1b5c...3e9fpending
Gas: 21,000 gwei
Network
Ethereum
Language
Solidity 0.8.x
Testing
Foundry + HH
Web3 Lib
Ethers.js v6
// web3_stack
Blockchain Toolkit
Smart Contracts
Solidity
Hardhat
Foundry
OpenZeppelin
ERC-20
ERC-721
ERC-1155
Upgradeable Contracts
Web3 Frontend
Ethers.js
Web3.js
Wagmi
RainbowKit
MetaMask SDK
viem
WalletConnect
DeFi & Protocols
Uniswap
Aave
Chainlink Oracles
Flash Loans
Yield Farming
Liquidity Pools
AMMs
Infrastructure
Ethereum Mainnet
Polygon
Arbitrum
IPFS
The Graph
Alchemy
Infura
Tenderly
// solidity_code
Gas-Optimized Smart Contracts
Every byte costs gas on Ethereum. I write contracts with optimization in mind — using immutable variables, packed structs, custom errors, and assembly where it counts.
- Reentrancy protection on all state changes
- Access control patterns (Ownable, Roles)
- Upgradeable proxies (UUPS / Transparent)
- Comprehensive unit + fuzz tests
- Gas optimization with packed storage
- Formal verification ready
Audit Checklist
Reentrancy Guards100%
Access Control100%
Test Coverage95%
SimpleStaking.solSolidity
1"syntax-comment">// SPDX-License-Identifier: MIT2"syntax-keyword">pragma "syntax-keyword">solidity ^0.8.20;34"syntax-keyword">import "@openzeppelin/contracts/token/ERC20/IERC20.sol";5"syntax-keyword">import "@openzeppelin/contracts/security/ReentrancyGuard.sol";6"syntax-keyword">import "@openzeppelin/contracts/access/Ownable.sol";78"syntax-comment">/// @title SimpleStaking - Stake tokens, earn rewards9"syntax-comment">/// @author Koustav Manna10"syntax-keyword">contract SimpleStaking is ReentrancyGuard, Ownable {11 IERC20 "syntax-keyword">public "syntax-keyword">immutable stakingToken;12 "syntax-keyword">uint256 "syntax-keyword">public rewardRate = 100; "syntax-comment">// tokens per block1314 "syntax-keyword">mapping("syntax-keyword">address => "syntax-keyword">uint256) "syntax-keyword">public stakedBalance;15 "syntax-keyword">mapping("syntax-keyword">address => "syntax-keyword">uint256) "syntax-keyword">public lastClaimBlock;1617 "syntax-keyword">event Staked("syntax-keyword">address "syntax-keyword">indexed user, "syntax-keyword">uint256 amount);18 "syntax-keyword">event Withdrawn("syntax-keyword">address "syntax-keyword">indexed user, "syntax-keyword">uint256 amount);19 "syntax-keyword">event RewardClaimed("syntax-keyword">address "syntax-keyword">indexed user, "syntax-keyword">uint256 reward);2021 "syntax-keyword">constructor("syntax-keyword">address _token) Ownable(msg.sender) {22 stakingToken = IERC20(_token);23 }2425 "syntax-keyword">function stake("syntax-keyword">uint256 amount) "syntax-keyword">external nonReentrant {26 "syntax-keyword">require(amount > 0, "Amount must be > 0");27 _claimRewards();28 stakingToken.transferFrom(msg.sender, "syntax-keyword">address(this), amount);29 stakedBalance[msg.sender] += amount;30 "syntax-keyword">emit Staked(msg.sender, amount);31 }3233 "syntax-keyword">function pendingRewards("syntax-keyword">address user) "syntax-keyword">public "syntax-keyword">view "syntax-keyword">returns ("syntax-keyword">uint256) {34 "syntax-keyword">uint256 blocks = block.number - lastClaimBlock[user];35 "syntax-keyword">return (stakedBalance[user] * rewardRate * blocks) / 1e18;36 }3738 "syntax-keyword">function _claimRewards() "syntax-keyword">internal {39 "syntax-keyword">uint256 reward = pendingRewards(msg.sender);40 lastClaimBlock[msg.sender] = block.number;41 if (reward > 0) {42 "syntax-keyword">emit RewardClaimed(msg.sender, reward);43 }44 }45}
// projects
Blockchain Projects
// defi_expertise
DeFi Specializations
Yield Farming
AMM routing, auto-compounding strategies, APY optimization
Smart Security
Reentrancy guards, formal verification, OpenZeppelin patterns
Gas Optimization
Packed structs, calldata tricks, custom errors, assembly
Cross-Chain
Polygon, Arbitrum, Optimism, LayerZero bridges