<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[How HackQuest Turned Me Into a Certified Arbitrum Builder]]></title><description><![CDATA[How HackQuest Turned Me Into a Certified Arbitrum Builder]]></description><link>https://arpitbhardwaj.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/69bab59c8c55d6eefb2050b5/71df2411-7683-496b-b719-f0010d88a1ae.png</url><title>How HackQuest Turned Me Into a Certified Arbitrum Builder</title><link>https://arpitbhardwaj.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 18:49:39 GMT</lastBuildDate><atom:link href="https://arpitbhardwaj.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[🚀 Building on Arbitrum Stylus: My Journey Through HackQuest Co-learning Camp 19]]></title><description><![CDATA[Introduction
When I first heard about Arbitrum Stylus, I was curious — why would anyone write smart contracts in Rust instead of Solidity? After going through the HackQuest India Co-learning Camp 19, ]]></description><link>https://arpitbhardwaj.hashnode.dev/building-on-arbitrum-stylus-my-journey-through-hackquest-co-learning-camp-19</link><guid isPermaLink="true">https://arpitbhardwaj.hashnode.dev/building-on-arbitrum-stylus-my-journey-through-hackquest-co-learning-camp-19</guid><category><![CDATA[Arbitrum]]></category><category><![CDATA[@HackQuestIN]]></category><category><![CDATA[Hackquest]]></category><category><![CDATA[Web3]]></category><category><![CDATA[Ethereum]]></category><dc:creator><![CDATA[ARPIT BHARDWAJ]]></dc:creator><pubDate>Wed, 18 Mar 2026 15:53:11 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/69bab59c8c55d6eefb2050b5/3e01ba99-ddc0-4893-b0d3-6dae208624a0.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Introduction
When I first heard about Arbitrum Stylus, I was curious — why would anyone write smart contracts in Rust instead of Solidity? After going through the HackQuest India Co-learning Camp 19, I now have a clear answer: performance, safety, and flexibility.
In this blog, I'll walk you through what Arbitrum Stylus is, why it's powerful, and what I built during the camp.</p>
<p>🤔 What is Arbitrum Stylus?
Arbitrum Stylus is a new programming environment on Arbitrum that allows developers to write smart contracts in Rust, C, and C++ — languages that compile to WebAssembly (WASM).
This means:</p>
<p>⚡ 10x faster execution than EVM bytecode
🦀 Memory-safe contracts thanks to Rust's ownership model
💰 Lower gas costs due to WASM efficiency
🔗 100% EVM compatible — Stylus contracts can call Solidity contracts and vice versa</p>
<p>🛠️ What I Built: A Vault Contract
During the camp, I built a Vault contract using the Stylus SDK in Rust. Here's a breakdown of the key components:
Setting Up the Project
rust#![cfg_attr(not(feature = "export-abi"), no_main, no_std)]
extern crate alloc;</p>
<p>#[global_allocator]
static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT;
This sets up a no-std Rust environment optimized for WASM compilation.</p>
<p>Defining Storage with sol_storage!
rustsol_storage! {
    #[entrypoint]
    struct Vault {
        address asset;
        uint totalSupply;
        #[borrow]
        Erc20 erc20;
    }
}
The sol_storage! macro maps Rust structs directly to Solidity-compatible storage slots — no manual slot management needed!</p>
<p>Inheriting ERC20
rust#[public]
#[inherit(Erc20)]
impl Vault {
    // functions here
}
The #[inherit] attribute automatically re-exports all ERC20 functions through the Vault contract — similar to Solidity inheritance but cleaner.</p>
<p>Writing the Deposit Function
rust#[payable]
pub fn deposit(&amp;mut self, amount: U256) -&gt; Result&lt;(), Vec&gt; {
    let selector = function_selector!("transferFrom(address,address,uint256)");
    let data = [
        &amp;selector[..],
        &amp;msg::sender().into_array(),
        &amp;contract::address().into_array(),
        // amount bytes...
    ];
}
This uses raw calldata construction to call transferFrom on the underlying ERC20 asset — a powerful pattern for cross-contract interaction in Stylus.</p>
<p>💡 Key Takeaways
ConceptWhat I Learnedsol_storage!Maps Rust structs to on-chain storage#[entrypoint]Marks the main contract struct#[public]Exports functions as external ABI#[inherit]Enables contract inheritance#[payable]Allows native token receptionfunction_selector!Builds raw calldata for cross-contract callsResult&lt;(), Vec&gt;Stylus error handling pattern</p>
<p>🏆 Why Arbitrum Stylus is a Game Changer</p>
<p>For Rust developers — you can now enter Web3 without learning Solidity
For performance-critical apps — DeFi, gaming, and compute-heavy contracts benefit enormously
For security — Rust's compiler catches memory bugs before deployment
For gas optimization — WASM execution is significantly cheaper than EVM</p>
<p>🙏 Acknowledgements
Huge thanks to HackQuest India for organizing Co-learning Camp 19. The structured learning path made Arbitrum Stylus approachable even for someone new to blockchain development.
I'm now a Certified Arbitrum Builder and excited to keep building! 🎉</p>
<p>📌 Resources</p>
<p>Arbitrum Stylus Docs
HackQuest
Stylus SDK GitHub</p>
<p>Written by Arpit Bhardwaj | HackQuest India Co-learning Camp 19</p>
]]></content:encoded></item></channel></rss>