Obinna Duru
@BinnaDev
Followers
232
Following
982
Media
237
Statuses
753
Smart Contract Engineer | Security • Gas Optimization • Building decentralized systems with excellence & integrity
Imo State, Nigeria
Joined August 2022
I didn't just build an Airdrop contract. I built a modular Token Distribution System. 🏗️ 1. Merkle Drops for mass scale (Pull). 2. EIP-712 Signatures for dynamic claims (Push). 3. Gasless Support via ERC-2771. Status: Audit-Ready. 🔒 Here is a breakdown of the architecture and
4
4
19
I'm Obinna Duru (@BinnaDev), a Smart Contract Engineer. I build secure, gas-optimized protocols like this one. I am actively looking for Internship or Junior Developer roles to contribute to a strong team. To see more of my work on secure and efficient on-chain systems, feel
binnadev.vercel.app
Smart Contract Engineer and backend developer dedicated to building reliable, secure, and efficient onchain systems. Blending deep technical knowledge with a reflective approach to build decentrali...
0
0
6
The code is open-source, fully documented with NatSpec, and ready for review. Check out the repo here: 🔗 https://t.co/nkSspI9JrT I'd appreciate any feedback on the EIP-712 implementation from the senior devs out there!
github.com
Contribute to obinnafranklinduru/tailored-airdrop development by creating an account on GitHub.
1
1
7
The Tooling: Foundry I built and tested this entirely in Foundry. Testing wasn't an afterthought: - Fuzz Testing: Validating inputs to prevent edge-case exploits. - Gas Reports: benchmarking the Bitmap vs Mapping savings. - Scripts: TypeScript scripts to generate Merkle Trees
2
0
5
The UX: Gasless Airdrops fail when users have no ETH for gas. I made both modules ERC-2771 Compatible. This allows a Relayer to pay the gas fees on behalf of the user. The contract verifies the _msgSender() correctly, ensuring security even when the transaction is meta-tx
1
0
4
The Logic: Signatures But what if the whitelist changes dynamically? Merkle Trees are too rigid. Enter SignatureAirdrop.sol. Using EIP-712 (Typed Data), a trusted backend can sign permissions off-chain. Users submit the signature to claim. Perfect for "live" rewards or complex
1
0
6
The Logic: Merkle For large static lists (10k+ users), onchain storage is too expensive. I implemented a Merkle Airdrop module. ✅ Storage: O(1). Only the Root is stored on-chain. ✅ Optimization: I used BitMaps (@OpenZeppelin) instead of standard mappings to track claimed
1
1
6
"Gasless" transactions are a lie. 🤥 Someone always pays. But when we build dApps, forcing new users to have ETH just to interact is a failure of design. It breaks trust before it's even built. Here's how we build a thoughtful solution. 👇
I built a secure, gasless Merkle Airdrop contract to explore this exact philosophy. I've written a full deep-dive on https://t.co/yaMVEnDAlu with all the code and security considerations. Full Article:
0
0
5
Finally, a huge shoutout to the authors and contributors who defined these critical standards. Their thoughtful work makes reliable systems like this possible. Thank you: @drortirosh @wighawag @ethecofund @yoavw @erc4337 @amxx @schin_tomar @stonecoldpat0 @mrnventuro @feindura
0
0
1
Project Repo: https://t.co/AqJZNSAOzQ If you find this thoughtful, a Like & Repost is always appreciated. To see more of my work:
binnadev.vercel.app
Smart Contract Engineer and backend developer dedicated to building reliable, secure, and efficient onchain systems. Blending deep technical knowledge with a reflective approach to build decentrali...
1
0
1
I built a secure, gasless Merkle Airdrop contract to explore this exact philosophy. I've written a full deep-dive on https://t.co/yaMVEnDAlu with all the code and security considerations. Full Article:
dev.to
How to use ERC-2771 and a Merkle Airdrop contract to build thoughtful, user-first dApps by separating...
1
0
1
This is engineering with purpose. We aren't just using a standard; we're making a deliberate choice to build systems that are reliable, secure, and user-focused. We must build systems that are not only functional, but thoughtful and excellent. That is how we build trust.
1
0
1
...AUTHORIZE: Our contract, seeing the call is from the TrustedForwarder, uses _msgSender() to securely extract Alice's address. Authorization is preserved.
1
0
1
The flow is built on trust and verification: SIGN: Alice signs a message with her intent (it's free). RELAY: Bob (the relayer) pays gas to submit her signed message to a single TrustedForwarder contract. ...
1
0
1
This is not a new problem. The principled, reliable solution is ERC-2771. It's a community-driven standard that provides an on-chain protocol to securely separate the gas payer (the relayer) from the action authorizer (the user).
1
0
1
So, we create a "relayer" (Bob) to pay the gas for her. Problem solved? No. Now msg.sender = Bob. Our contract's security (require(msg.sender == Alice)) breaks. We've traded a thoughtful UX for a massive security hole.
1
0
1
Imagine Alice. She's excited to claim her first airdrop. She clicks "Claim", but the transaction fails. Why? The "Empty Wallet" problem. She has no ETH for gas. Her excitement turns to frustration. Our system has failed her. This isn't reliable or excellent.
1
0
1
This project was a personal statement - an attempt to build a portfolio that lives up to the same standards I apply to my smart contract work. It's more than a portfolio, it's my new digital home. Let's build something you can trust 🤝. 👉Check it out: https://t.co/RPa0G12zOn
binnadev.vercel.app
Smart Contract Engineer and backend developer dedicated to building reliable, secure, and efficient onchain systems. Blending deep technical knowledge with a reflective approach to build decentrali...
0
0
1
🔵 Excellent: The Polish & Performance "Excellence" is in the craft. This isn't a template. - Built on @nextjs 14, @typescript, & Server Components. - Scores 95+ on Lighthouse. - Every interactive element has a precise, deliberate motion. It feels fast, balanced, and complete
1
0
1