<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: karthikaaa-x</title>
    <description>The latest articles on Forem by karthikaaa-x (@karthikaaax).</description>
    <link>https://forem.com/karthikaaax</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3220748%2Ff35acc23-d7ff-4da1-a3d2-336b5183194b.jpeg</url>
      <title>Forem: karthikaaa-x</title>
      <link>https://forem.com/karthikaaax</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/karthikaaax"/>
    <language>en</language>
    <item>
      <title>Understanding Wallets: MetaMask and Beyond</title>
      <dc:creator>karthikaaa-x</dc:creator>
      <pubDate>Wed, 11 Jun 2025 15:46:59 +0000</pubDate>
      <link>https://forem.com/karthikaaax/understanding-wallets-metamask-and-beyond-3d6k</link>
      <guid>https://forem.com/karthikaaax/understanding-wallets-metamask-and-beyond-3d6k</guid>
      <description>&lt;p&gt;Hello fellow explorers of the decentralized web!&lt;/p&gt;

&lt;p&gt;If you're new to Web3, you’ve probably heard people say things like “Connect your wallet to mint the NFT” or “Don’t share your seed phrase!” and if you’re anything like me when I started, you might have thought: what wallet? what seed? are we planting something? &lt;/p&gt;

&lt;p&gt;So let’s break it down:&lt;br&gt;
This post is all about crypto wallets, why they matter, and how tools like MetaMask fit into the Web3 world.&lt;/p&gt;

&lt;p&gt;First of all, what is a Web3 wallet?&lt;br&gt;
A Web3 wallet is a digital tool that allows you to store, send, and receive cryptocurrencies, and more importantly — interact with decentralized apps (dApps) on the blockchain.&lt;/p&gt;

&lt;p&gt;Think of it like your Google account — except instead of signing into YouTube or Gmail, you’re signing into DeFi apps, NFT marketplaces, DAOs, and other blockchain-based platforms.&lt;/p&gt;

&lt;p&gt;But unlike Google, you own it. You control your private keys. No company stores your password. You’re the bank.&lt;/p&gt;

&lt;p&gt;Meet MetaMask&lt;br&gt;
MetaMask is probably the most well-known Web3 wallet, especially for Ethereum-based apps.&lt;/p&gt;

&lt;p&gt;It’s a browser extension and mobile app that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lets you store ETH and ERC-20 tokens&lt;/li&gt;
&lt;li&gt;Connects to dApps like OpenSea, Uniswap, and more&lt;/li&gt;
&lt;li&gt;Lets you switch between different networks (Ethereum, Polygon, etc.)&lt;/li&gt;
&lt;li&gt;Gives you full control over your private keys and seed phrase&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you install MetaMask, it generates a 12-word seed phrase — this is your master key. If someone gets it, they own your wallet. If you lose it, your wallet is gone. It’s that serious.&lt;/p&gt;

&lt;p&gt;Hot vs Cold Wallets (No, we’re not talking coffee)&lt;br&gt;
There are different kinds of crypto wallets, and they mainly fall into two categories:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Hot wallets: connected to the internet (MetaMask, Trust Wallet). Easy to use, more convenient, but slightly riskier.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cold wallets: offline storage (Ledger, Trezor). Safer from hacks, but less convenient for daily use.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you're just starting out and experimenting, a hot wallet like MetaMask is fine. But if you’re holding serious amounts of crypto/NFTs, consider a cold wallet later.&lt;/p&gt;

&lt;p&gt;Your Wallet = Your Identity&lt;br&gt;
In Web3, your wallet is your identity. When you “connect wallet” on a dApp, you're not logging in with email/password — you're proving ownership of your wallet address.&lt;/p&gt;

&lt;p&gt;Your address might look like this:&lt;br&gt;
0xA3f...9B2&lt;/p&gt;

&lt;p&gt;It's public. People can see your transactions on the blockchain. So, yeah — privacy is a whole other rabbit hole we’ll jump into another day.&lt;/p&gt;

&lt;p&gt;Other Wallet Options&lt;br&gt;
While MetaMask is great, it’s not the only player in town. Here are a few others:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trust Wallet – mobile-first and supports multiple chains&lt;/li&gt;
&lt;li&gt;Coinbase Wallet – beginner-friendly with DeFi and NFT support&lt;/li&gt;
&lt;li&gt;Rainbow Wallet – beautiful UI, Ethereum-focused&lt;/li&gt;
&lt;li&gt;Argent – built-in DeFi features, smart contract wallet&lt;/li&gt;
&lt;li&gt;Ledger Nano – hardware wallet for long-term storage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Choose based on what chain you're using, your technical comfort, and what you want to do in Web3.&lt;/p&gt;

&lt;p&gt;So… MetaMask and Beyond?&lt;br&gt;
MetaMask is like your training wheels into the world of Web3. But as you go deeper, you’ll explore other wallets, maybe even multisig wallets (shared wallets with approvals), or smart contract wallets (like Gnosis Safe).&lt;/p&gt;

&lt;p&gt;The good news? You don’t have to understand it all at once.&lt;br&gt;
Start by installing MetaMask. Try sending some testnet ETH. Deploy a smart contract. Experiment. Safely.&lt;/p&gt;

&lt;p&gt;TL;DR&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web3 wallets = your blockchain bank account + login ID&lt;/li&gt;
&lt;li&gt;MetaMask = most popular hot wallet for Ethereum&lt;/li&gt;
&lt;li&gt;Never share your seed phrase&lt;/li&gt;
&lt;li&gt;Your wallet lets you interact with Web3 dApps securely&lt;/li&gt;
&lt;li&gt;Choose wallets based on your goals (storage, DeFi, NFTs, etc.)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>programming</category>
      <category>web3</category>
      <category>beginners</category>
      <category>solidity</category>
    </item>
    <item>
      <title>Web2 vs Web3 Coding: What’s Actually Different?</title>
      <dc:creator>karthikaaa-x</dc:creator>
      <pubDate>Fri, 06 Jun 2025 17:36:12 +0000</pubDate>
      <link>https://forem.com/karthikaaax/web2-vs-web3-coding-whats-actually-different-2gde</link>
      <guid>https://forem.com/karthikaaax/web2-vs-web3-coding-whats-actually-different-2gde</guid>
      <description>&lt;p&gt;As a developer stepping into Web3, one of the first questions you might ask is:&lt;/p&gt;

&lt;p&gt;“How is Web3 coding different from Web2?”&lt;/p&gt;

&lt;p&gt;At first glance, they might seem similar — you write code, deploy applications, and users interact with them. But underneath the surface, there are fundamental differences in architecture, data handling, security models, and even the developer mindset.&lt;/p&gt;

&lt;p&gt;Let’s walk through the key differences to understand how building in Web3 is not just a new stack — it’s a new way of thinking.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Centralized vs Decentralized Architecture
Web2 applications are hosted on centralized servers (e.g., AWS, Heroku). You control the infrastructure, databases, and code deployment.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Web3 applications rely on blockchains (e.g., Ethereum) for backend logic and decentralized storage (e.g., IPFS) for assets.&lt;/p&gt;

&lt;p&gt;In Web2, you own the data and logic. In Web3, the network does.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Backend Logic
In Web2, backend logic is written in traditional server-side languages like Node.js, Python, or Java.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In Web3, backend logic is encoded in smart contracts (e.g., using Solidity). These contracts are immutable and deployed to a blockchain, which acts as the backend.&lt;/p&gt;

&lt;p&gt;Once deployed, smart contract code cannot be changed, unlike Web2 apps where you can hotfix a bug in seconds.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Data Storage
Web2 apps often use relational or NoSQL databases (MySQL, MongoDB).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Web3 apps use on-chain storage (very expensive and limited) or decentralized off-chain solutions like IPFS or Filecoin.&lt;/p&gt;

&lt;p&gt;In Web3, storing even a simple string on-chain costs gas, so optimization is key.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Authentication
Web2 uses username-password systems, OAuth, cookies, sessions, etc.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Web3 uses wallet-based authentication. Users log in using wallets like MetaMask, signing a message to prove ownership of their public address.&lt;/p&gt;

&lt;p&gt;No passwords. No account creation. Just crypto wallets.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Trust Model
Web2 apps are trust-based — users trust that your backend works correctly and your server won’t be compromised.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Web3 apps are trustless — users verify logic on-chain. Smart contracts are transparent, and anyone can inspect or audit them.&lt;/p&gt;

&lt;p&gt;In Web3, code is law. If the contract says you’ll get paid, the blockchain will enforce it.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Debugging &amp;amp; Testing
Web2 development allows real-time debugging with tools like Chrome DevTools or Postman.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Web3 requires local blockchain environments like Hardhat or Ganache, plus unit tests to simulate real-world conditions before deployment.&lt;/p&gt;

&lt;p&gt;Deploying a broken Web3 contract isn’t just embarrassing — it’s expensive and permanent.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cost of Deployment
Web2 apps cost money in terms of server time, bandwidth, and storage — typically monthly or usage-based billing.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Web3 apps have upfront gas fees during contract deployment and function execution.&lt;/p&gt;

&lt;p&gt;Even simple actions like updating a variable on-chain can incur gas costs.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Frontend Differences
Web2 frontends often use React, Vue, or Angular — same with Web3.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But Web3 frontends also need libraries like:&lt;/p&gt;

&lt;p&gt;ethers.js or web3.js (to interact with the blockchain)&lt;/p&gt;

&lt;p&gt;wagmi or RainbowKit (for wallet integration)&lt;/p&gt;

&lt;p&gt;Users interact with smart contracts directly through their wallets, not hidden API calls.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;br&gt;
The jump from Web2 to Web3 can feel overwhelming — but it’s also incredibly rewarding. You’re not just learning new tools; you’re understanding a new paradigm of building software that’s transparent, decentralized, and owned by users.&lt;/p&gt;

&lt;p&gt;If you’re just getting started, build something small (like a counter app or voting dApp) and take your time learning how the pieces fit together. The mindset shift is just as important as the syntax.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>web3</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>What Happens When You Deploy a Smart Contract?</title>
      <dc:creator>karthikaaa-x</dc:creator>
      <pubDate>Wed, 04 Jun 2025 06:27:07 +0000</pubDate>
      <link>https://forem.com/karthikaaax/what-happens-when-you-deploy-a-smart-contract-23c8</link>
      <guid>https://forem.com/karthikaaax/what-happens-when-you-deploy-a-smart-contract-23c8</guid>
      <description>&lt;p&gt;As a beginner in Web3 development, you might have written your first Solidity smart contract and used the Remix IDE to deploy it. You saw the contract appear on the right panel, maybe clicked a few buttons, and witnessed some changes. But what’s actually happening under the hood when you click "Deploy"? Let's break it down step by step.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Step 1: Writing the Contract
Here’s a simple contract to start with:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract HelloWorld {
    string public message;

    constructor() {
        message = "Hello, Blockchain!";
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At this point, the code exists only in your development environment. It’s not yet part of the blockchain.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Step 2: Compiling the Code&lt;br&gt;
Before deployment, the code needs to be compiled. This process translates your human-readable Solidity code into:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bytecode – The low-level instructions that the Ethereum Virtual Machine (EVM) understands.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ABI (Application Binary Interface) – A JSON file that describes how external applications and users can interact with the contract.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This compiled code is what will be sent to the blockchain.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Step 3: Deployment as a Blockchain Transaction
When you click "Deploy" in Remix, here's what happens:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A transaction is created and sent to the blockchain network. This transaction contains the bytecode of the contract.&lt;/p&gt;

&lt;p&gt;You must pay gas fees, because storing data and executing code on the blockchain requires computational resources.&lt;/p&gt;

&lt;p&gt;The transaction is mined and added to a block.&lt;/p&gt;

&lt;p&gt;The smart contract’s constructor() function is executed during deployment.&lt;/p&gt;

&lt;p&gt;Once successful, the contract is assigned a unique address on the blockchain.&lt;/p&gt;

&lt;p&gt;Understanding the Contract Address&lt;br&gt;
The contract address is the location on the blockchain where your smart contract code and state are stored. Once deployed, this address can be used to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interact with the contract (e.g., read variables, call functions)&lt;/li&gt;
&lt;li&gt;Send transactions to it&lt;/li&gt;
&lt;li&gt;Integrate it into frontend applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Immutable and Permanent&lt;br&gt;
One of the key characteristics of smart contracts is immutability. After deployment:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The contract code cannot be changed.&lt;/li&gt;
&lt;li&gt;Any bugs or vulnerabilities will remain unless you have built upgradeability into the contract logic (which is an advanced topic).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why thorough testing and deploying to a testnet before deploying to mainnet is strongly recommended.&lt;/p&gt;

&lt;p&gt;Summary&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deploying a smart contract means:&lt;/li&gt;
&lt;li&gt;Converting your code into EVM-compatible bytecode&lt;/li&gt;
&lt;li&gt;Sending that code to the blockchain through a transaction&lt;/li&gt;
&lt;li&gt;Paying gas to store it permanently&lt;/li&gt;
&lt;li&gt;Getting a unique contract address for interaction&lt;/li&gt;
&lt;li&gt;It’s the process that takes your code from an idea to a working, decentralized application.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're learning Solidity, understanding deployment is a key milestone. Each step you take, from writing your first contract to deploying it, helps build your foundation as a Web3 developer.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>solidity</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Build a Simple Counter Smart Contract in Solidity</title>
      <dc:creator>karthikaaa-x</dc:creator>
      <pubDate>Mon, 02 Jun 2025 13:52:08 +0000</pubDate>
      <link>https://forem.com/karthikaaax/build-a-simple-counter-smart-contract-in-solidity-emg</link>
      <guid>https://forem.com/karthikaaax/build-a-simple-counter-smart-contract-in-solidity-emg</guid>
      <description>&lt;p&gt;Hello again, Geeksters!&lt;/p&gt;

&lt;p&gt;So if you read my Hello World blog (and didn’t fall asleep halfway), you probably know I’m still figuring out this whole Solidity thing.&lt;/p&gt;

&lt;p&gt;But today, I’m back with another beginner-friendly smart contract. This time we’re building a Counter. A simple contract that counts up and down like a digital toddler learning numbers. &lt;/p&gt;

&lt;p&gt;But first, what’s a Counter Contract?&lt;br&gt;
A counter smart contract is one of the easiest ways to get your hands dirty with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;State variables&lt;/li&gt;
&lt;li&gt;Function creation&lt;/li&gt;
&lt;li&gt;Function visibility&lt;/li&gt;
&lt;li&gt;Increment and decrement logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's a tiny contract that holds a number and lets you increase or decrease it. Nothing fancy, but a solid way to practice.&lt;/p&gt;

&lt;p&gt;Let’s Start: &lt;br&gt;
Open Remix! Hop onto Remix IDE, that magical place where all smart contracts are born.&lt;/p&gt;

&lt;p&gt;Create a new file called Counter.sol. Paste the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract Counter {
    uint public count;

    constructor() {
        count = 0;
    }

    function increment() public {
        count += 1;
    }

    function decrement() public {
        require(count &amp;gt; 0, "Counter can't go below 0");
        count -= 1;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So… What’s Happening Here?&lt;br&gt;
Let’s break this down line by line because I like knowing why things work — not just copy-pasting and hoping Remix is in a good mood today.&lt;/p&gt;

&lt;p&gt;-&lt;code&gt;// SPDX-License-Identifier: MIT&lt;/code&gt; - It tells people what license your code uses. &lt;/p&gt;

&lt;p&gt;-&lt;code&gt;pragma solidity ^0.8.0;&lt;/code&gt; - This tells Solidity: “Hey, I want you to compile this with version 0.8.0 or anything newer but not breaking.” We don’t want syntax tantrums later.&lt;/p&gt;

&lt;p&gt;-&lt;code&gt;contract Counter {&lt;/code&gt; - We’re creating a contract (like a class in Java or Python). Name? Counter. Duh.&lt;/p&gt;

&lt;p&gt;-&lt;code&gt;uint public count;&lt;/code&gt; - We’re making a public unsigned integer called count. Public means anyone (yes, anyone!) can view it without needing a separate function.&lt;/p&gt;

&lt;p&gt;-&lt;code&gt;constructor() { count = 0; }&lt;/code&gt; - When this contract is deployed, we set count to zero. Because a counter usually starts… well… at zero. Unless you’re a chaotic dev.&lt;/p&gt;

&lt;p&gt;-&lt;code&gt;function increment() public { count += 1; }&lt;/code&gt; - A simple function that adds 1 to our count. It’s public, so anyone can call it and bump the number.&lt;/p&gt;

&lt;p&gt;-&lt;code&gt;function decrement() public { require(count &amp;gt; 0, "Counter can't go below 0"); count -= 1; }&lt;/code&gt; - This one subtracts 1 but only if the count is above zero. We don’t want it to go negative — that’s not how counters work in normal human land.&lt;/p&gt;

&lt;p&gt;Time to Deploy!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Okay, now that you’ve typed (or shamelessly copied) the code:&lt;/li&gt;
&lt;li&gt;Hit the Compile button (left sidebar).&lt;/li&gt;
&lt;li&gt;Go to the Deploy &amp;amp; Run Transactions tab.&lt;/li&gt;
&lt;li&gt;Click Deploy.&lt;/li&gt;
&lt;li&gt;Click the count button — it should show 0.&lt;/li&gt;
&lt;li&gt;Click increment() a few times, then check count again. Boom — it’s counting!&lt;/li&gt;
&lt;li&gt;Try decrement() — if it reaches 0 and you try again, Remix will yell at you (nicely).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Final Thoughts&lt;br&gt;
This might seem super basic — and it is — but that’s the point. I’m still at the “clumsy but curious” stage of learning Solidity, and small wins like this really help.&lt;/p&gt;

&lt;p&gt;You don’t need to write the next DeFi app right away. You just need to start, mess up a little, and build one block at a time.&lt;/p&gt;

&lt;p&gt;If you got your counter working, that’s HUGE. I’m proud of you. Let’s keep learning, one contract at a time!&lt;/p&gt;

&lt;p&gt;See you in the next blog — and maybe we’ll build something even cooler.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>web3</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Writing Your First Smart Contract in Solidity (Hello World)</title>
      <dc:creator>karthikaaa-x</dc:creator>
      <pubDate>Sun, 01 Jun 2025 15:03:02 +0000</pubDate>
      <link>https://forem.com/karthikaaax/writing-your-first-smart-contract-in-solidity-hello-world-3oph</link>
      <guid>https://forem.com/karthikaaax/writing-your-first-smart-contract-in-solidity-hello-world-3oph</guid>
      <description>&lt;p&gt;Hello Geeksters!&lt;/p&gt;

&lt;p&gt;If you've read my previous blogs, you'll know that I keep blabbering about Solidity and coding. I talk as if I am an expert but I am clearly not. I'm still a beginner figuring her way around Solidity. So the question comes, how did I start? What was my first code? I'll tell you the answer to that in this blog.&lt;/p&gt;

&lt;p&gt;So a little bit basics first.&lt;/p&gt;

&lt;p&gt;What is a smart contract?&lt;br&gt;
A smart contract is a little piece of code that runs on the blockchain and runs automatically when certain conditions are met. It’s immutable, transparent, and decentralized. For example, when I send my best friend some crypto currency for a cute dress, the act of sending it triggers a smart contract to reduce the amount from my account and to add the same amount to her account after making sure my wallet has sufficient balance.&lt;/p&gt;

&lt;p&gt;What is Solidity?&lt;br&gt;
Unlike most programs, Ethereum based machines cannot be coded in Python. It needs a special language called Solidity. So Solidity is used to write these smart contracts for the Ethereum based networks. &lt;/p&gt;

&lt;p&gt;Now we'll start with the basic &lt;code&gt;hello world&lt;/code&gt; program in solidity.&lt;br&gt;
You will be coding in something called a Remix IDE (&lt;a href="https://remix.ethereum.org" rel="noopener noreferrer"&gt;https://remix.ethereum.org&lt;/a&gt;) which is an online IDE for Solidity development.&lt;br&gt;
Head over to Remix and create a new file named &lt;code&gt;HelloWorld.sol&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Paste the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract HelloWorld {
    string public message;

    constructor() {
        message = "Hello, World!";
    }

    function updateMessage(string calldata newMessage) public {
        message = newMessage;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's understand what this code actually does.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;// SPDX-License-Identifier: MIT&lt;/code&gt; - This is a license identifier. It’s not required for functionality, but is good practice and required by most tools like Remix. MIT is a permissive open-source license.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;pragma solidity ^0.8.0;&lt;/code&gt; - This line tells the compiler that this code is written for Solidity version 0.8.0 or higher, but not 0.9.0 or above. This ensures compatibility and avoids using older or incompatible features.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;contract HelloWorld {&lt;/code&gt; - Starts the definition of a contract named HelloWorld. A contract in Solidity is like a class in other programming languages. It contains variables and functions that define behavior.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;string public message;&lt;/code&gt; - Declares a state variable named message of type string. The keyword public automatically creates a getter function — anyone can call it to read the value stored in message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;constructor() {&lt;/code&gt; - A constructor is a special function that runs only once, at the time the contract is deployed to the blockchain. It initializes contract state — in this case, it sets the default value of the message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;message = "Hello, World!";&lt;/code&gt; - A variable called message holds the message 'Hello World!' in it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;function updateMessage(string calldata newMessage) public {&lt;/code&gt; - Defines a public function named updateMessage. It takes a string input called newMessage, marked as calldata (a temporary, read-only location for function inputs). public means anyone can call this function from outside the contract.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;message = newMessage;&lt;/code&gt; - Inside the function: updates the state variable message to the new value provided by the user.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So now that you've coded the smart contract, let's run it.&lt;/p&gt;

&lt;p&gt;In Remix, on the left hand bar, you'll see an option to compile the smart contract. Click on it. Once its compiled successfully, you can deploy your first every smart contract!&lt;/p&gt;

&lt;p&gt;To deploy it, you'll see a Deploy and Run Transactions tab as well. Click on it. Click message() — see "Hello, World!". Input "Web3 is cool!" into updateMessage — click execute. Click message() again — now you'll see "Web3 is cool!".&lt;/p&gt;

&lt;p&gt;If you've followed everything, you should now see your first ever smart contract that was deployed on a network! Congratulations! I got this feel of pride not so long back, so I hope you're proud of yourself as well. Its the tiny steps that matter. I'm still very much early in my learning phase but that is what is exciting. Keep pushing through and you've got this!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>web3</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>NFTs Beyond Art: Use Cases You Didn’t Know</title>
      <dc:creator>karthikaaa-x</dc:creator>
      <pubDate>Sat, 31 May 2025 14:15:13 +0000</pubDate>
      <link>https://forem.com/karthikaaax/nfts-beyond-art-use-cases-you-didnt-know-27al</link>
      <guid>https://forem.com/karthikaaax/nfts-beyond-art-use-cases-you-didnt-know-27al</guid>
      <description>&lt;p&gt;When you hear the word &lt;strong&gt;NFT&lt;/strong&gt;, you probably think of pixelated monkeys or million-dollar JPEGs. But NFTs—&lt;strong&gt;Non-Fungible Tokens&lt;/strong&gt;—are much more than digital art. They’re revolutionizing industries like gaming, fashion, real estate, education, and even healthcare. In this post, we’ll explore &lt;strong&gt;mind-blowing real-world use cases of NFTs beyond just art&lt;/strong&gt;—some that are already live and some that hint at a bold decentralized future.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Gaming and Play-to-Earn Economies&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;NFTs are changing how we play games. In Web2, you could spend hundreds on skins and in-game items that you don’t actually own. In Web3, &lt;strong&gt;NFTs give you true ownership&lt;/strong&gt; of in-game assets—like swords, skins, or land—that you can trade, sell, or rent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Axie Infinity&lt;/strong&gt;: Players earn tokens by battling creatures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Illuvium&lt;/strong&gt;: A 3D open-world RPG where NFTs represent characters and items.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Real Estate and Virtual Land&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Yes, real estate is going digital. NFTs are used to represent &lt;strong&gt;ownership of virtual land&lt;/strong&gt; in metaverse platforms. But even in physical real estate, they can &lt;strong&gt;tokenize property deeds&lt;/strong&gt; for easier and more transparent transactions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Decentraland / The Sandbox&lt;/strong&gt;: Buy, sell, and build on virtual land.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Propy&lt;/strong&gt;: Real-world real estate transactions using NFTs.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Digital Identity and Credentials&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What if your university degree, driver’s license, or professional certificate were stored on the blockchain as an NFT? You could verify your credentials instantly and securely anywhere.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Soulbound Tokens (SBTs)&lt;/strong&gt;: Non-transferable NFTs for credentials and reputation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;POAP (Proof of Attendance Protocol)&lt;/strong&gt;: NFTs for event attendance and learning badges.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Music and Creator Royalties&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Artists are using NFTs to release &lt;strong&gt;exclusive music&lt;/strong&gt;, crowdfund albums, and automatically receive royalties on resale. This removes middlemen and puts more power in the hands of creators.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Audius&lt;/strong&gt;: A decentralized music streaming service.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Royal.io&lt;/strong&gt;: Fans can invest in songs and earn royalty shares.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Supply Chain &amp;amp; Product Authentication&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;NFTs are being used to verify &lt;strong&gt;authenticity of luxury goods&lt;/strong&gt;, &lt;strong&gt;track supply chain logistics&lt;/strong&gt;, and prove product origin. Imagine scanning a QR code and instantly knowing whether that Gucci bag is legit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;VeChain&lt;/strong&gt;: Tracks supply chains using blockchain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nike’s Cryptokicks&lt;/strong&gt;: Verifiable ownership of physical sneakers via NFTs.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Event Tickets and Memberships&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;NFTs are a game-changer for &lt;strong&gt;ticketing&lt;/strong&gt;. They eliminate fraud, enable resale royalties, and even unlock perks or exclusive access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;strong&gt;Coachella Keys&lt;/strong&gt;: NFT-based lifetime festival passes.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Token-gated communities&lt;/strong&gt;: Only NFT holders can access certain Discords or content.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Healthcare and Patient Data&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While still early, NFTs could represent &lt;strong&gt;ownership of personal health records&lt;/strong&gt;, enabling secure sharing between doctors, hospitals, and researchers—while maintaining your privacy and consent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Potential Use:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A patient holds an NFT that stores or references encrypted health data.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;NFTs aren’t just a trend—they’re a new &lt;strong&gt;digital primitive&lt;/strong&gt; that unlocks secure, programmable ownership. Whether it’s education, fashion, healthcare, or finance, &lt;strong&gt;NFTs will quietly power the next generation of the internet&lt;/strong&gt;—often without people even realizing it.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>ethereum</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Understanding Data Types in Solidity</title>
      <dc:creator>karthikaaa-x</dc:creator>
      <pubDate>Fri, 30 May 2025 15:21:19 +0000</pubDate>
      <link>https://forem.com/karthikaaax/understanding-data-types-in-solidity-2m20</link>
      <guid>https://forem.com/karthikaaax/understanding-data-types-in-solidity-2m20</guid>
      <description>&lt;p&gt;Hello geeksters!&lt;/p&gt;

&lt;p&gt;So what is Solidity?&lt;/p&gt;

&lt;p&gt;Solidity is the language used by web3 developers to write smart contracts (they are indeed very smart) on EVM (Ethereum Virtual Machine) and other EVM compatible machines. Basically its like a special programming language for smart contract development. Now, it is important to know what data types are supported in Solidity. Its pretty similar to most programming languages where you have a type to store a number, strings, arrays, etc...&lt;/p&gt;

&lt;p&gt;Let's do a deep dive into the very interesting world of different data types in Solidity.&lt;/p&gt;

&lt;p&gt;On a high level, there are two distinct data types.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Value Types - These are stored directly on the memory. So if they are assigned, they're copied. These are further subdivided into &lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;uint&lt;/code&gt; - Unsigned integers.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;uint x = 100;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;uint can be of different types as well. uint, uint8, uint32, etc. These can be used on various situations based on requirement to save gas. But defining a variable under uint works as well.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;int&lt;/code&gt; - Signed integers. Basically you can store negative integers in this data type when compared to uint.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int x = 100;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;int can also be of different types similar to uint as int, int8, int32, etc.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;bool&lt;/code&gt; - Stores a true or false value.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bool isPayable = True;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;address&lt;/code&gt; - Stores a 20 byte Ethereum address. It can be the address of the wallet from which you access the smart contract.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;address owner = msg.sender;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Reference Types - These data types are stored by reference, that is the variable defined by these data types store the memory address of where the actual data is located, rather than the data itself. These are of various types such as:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;string&lt;/code&gt; - It stores a string of characters like names, places, etc.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string name = "Achu";
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;array&lt;/code&gt; - It can be used to store a list of items of similar type. For example, a list of names of students in a class or a list of marks obtained in a class.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;uint[] public scores;    //stores a list of integers in array called scores
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;mapping&lt;/code&gt; - Creates a key-value hash table. Imagine a dictionary containing a name and an associated key. Like a student's name and their total marks.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mapping(address =&amp;gt; uint) balances;    //maps the addresses to integer values in a table called balances
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;struct&lt;/code&gt; - Similar to array but the difference is that it can store items of different types in it instead of the same type like in arrays. Like a student's name, address and score in one data structure.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;struct Student {
   string name;
   string address;
   uint scores;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mastering data types in Solidity is the foundation for smart contract development. Whether you're building DeFi, NFTs, or DAOs, using the right types can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prevent bugs &lt;/li&gt;
&lt;li&gt;Reduce gas costs &lt;/li&gt;
&lt;li&gt;Improve security&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>web3</category>
      <category>solidity</category>
    </item>
    <item>
      <title>How I Built My First Smart Contract: A Simple Voting App in Solidity</title>
      <dc:creator>karthikaaa-x</dc:creator>
      <pubDate>Thu, 29 May 2025 16:39:20 +0000</pubDate>
      <link>https://forem.com/karthikaaax/how-i-built-my-first-smart-contract-a-simple-voting-app-in-solidity-4508</link>
      <guid>https://forem.com/karthikaaax/how-i-built-my-first-smart-contract-a-simple-voting-app-in-solidity-4508</guid>
      <description>&lt;p&gt;I’ve just started learning Solidity to become a smart contract developer and to finally improve my coding skills. This post shares my first project — a simple voting app written and deployed using Remix.&lt;/p&gt;

&lt;p&gt;Project Summary&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users can vote for a candidate.&lt;/li&gt;
&lt;li&gt;Each wallet can vote only once.&lt;/li&gt;
&lt;li&gt;Votes are stored on the blockchain.&lt;/li&gt;
&lt;li&gt;Smart contract written in Solidity 0.8.x&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key Features&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;struct Candidate {&lt;br&gt;
    string name;&lt;br&gt;
    uint voteCount;&lt;br&gt;
}&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;We use an array of candidates and a mapping to prevent double-voting.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;require(!hasVoted[msg.sender], "Already voted!");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This line ensures no address can vote twice.&lt;/p&gt;

&lt;p&gt;What I Learned&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Solidity types and structures&lt;/li&gt;
&lt;li&gt;Basic contract deployment on Remix&lt;/li&gt;
&lt;li&gt;Using constructor() for initialization&lt;/li&gt;
&lt;li&gt;Importance of access control and validation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What’s Next&lt;/p&gt;

&lt;p&gt;I plan to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add a simple frontend (React + Ethers.js)&lt;/li&gt;
&lt;li&gt;Move to Hardhat for testing and local dev&lt;/li&gt;
&lt;li&gt;Explore how elections are built in real DeFi protocols&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>web3</category>
      <category>solidity</category>
    </item>
  </channel>
</rss>
