<?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>DEV Community: ajith pkumar</title>
    <description>The latest articles on DEV Community by ajith pkumar (@ajith_pkumar_e1ccbd40a88b).</description>
    <link>https://dev.to/ajith_pkumar_e1ccbd40a88b</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3887872%2F922dedac-76c1-42fa-83d5-573f16ec0313.png</url>
      <title>DEV Community: ajith pkumar</title>
      <link>https://dev.to/ajith_pkumar_e1ccbd40a88b</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ajith_pkumar_e1ccbd40a88b"/>
    <language>en</language>
    <item>
      <title>Solana Accounts 101</title>
      <dc:creator>ajith pkumar</dc:creator>
      <pubDate>Tue, 02 Jun 2026 12:31:32 +0000</pubDate>
      <link>https://dev.to/ajith_pkumar_e1ccbd40a88b/solana-accounts-101-oc3</link>
      <guid>https://dev.to/ajith_pkumar_e1ccbd40a88b/solana-accounts-101-oc3</guid>
      <description>&lt;p&gt;If you're coming from a traditional Web2 background, Solana's account model can feel strange at first. Terms like accounts, programs, owners, and rent exemption sound blockchain-specific. Let me make it easy for you.&lt;/p&gt;

&lt;p&gt;A useful way to think about Solana is as a giant distributed filesystem. Once I started looking at it that way, the account model made much more sense.&lt;/p&gt;

&lt;p&gt;Everything is an account.&lt;/p&gt;

&lt;p&gt;Wallets are accounts. Programs are accounts. Data storage is accounts. Even special network configuration objects are accounts.&lt;/p&gt;

&lt;p&gt;Every account lives in a giant key-value store:&lt;/p&gt;

&lt;p&gt;Address (32-byte public key) -&amp;gt; Account&lt;/p&gt;

&lt;p&gt;You can think of the address as a file path and the account as the file itself.&lt;/p&gt;

&lt;p&gt;The five fields every account has: lamports, data, owner, executable, rent_epoch&lt;/p&gt;

&lt;p&gt;Let's look at them one by one:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Lamports&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Lamports are the smallest unit of SOL.&lt;/p&gt;

&lt;p&gt;1 SOL = 1,000,000,000 lamports&lt;/p&gt;

&lt;p&gt;This field stores the account's SOL balance.&lt;/p&gt;

&lt;p&gt;For example:{ "lamports": 2135000000 } equals: 2.135 SOL&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Data&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The data field is simply a byte array.&lt;/p&gt;

&lt;p&gt;Programs use this space to store application state.&lt;/p&gt;

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

&lt;p&gt;Token balances&lt;br&gt;
NFT metadata&lt;br&gt;
User profiles&lt;br&gt;
Staking information&lt;/p&gt;

&lt;p&gt;Unlike a traditional database, Solana stores state directly inside accounts.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Owner&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The owner field is one of the most important concepts on Solana. Owner = Program that controls this account. For a normal wallet account, you'll often see: &lt;br&gt;
11111111111111111111111111111111&lt;br&gt;
This is the System Program.&lt;/p&gt;

&lt;p&gt;The owner determines who can modify the account.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Executable&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This field tells Solana whether an account contains executable code.&lt;br&gt;
"Executable = false" means it's a data account. "Executable = true" means it's a program account.&lt;/p&gt;

&lt;p&gt;For example, the System Program account is executable because it contains code validators can run.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Rent Epoch
Solana used this field to track rent collection.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ownership Rules: Solana's Security Model&lt;/p&gt;

&lt;p&gt;Only the account's owner program can:&lt;/p&gt;

&lt;p&gt;Modify account data&lt;br&gt;
Remove (debit) lamports from the account&lt;/p&gt;

&lt;p&gt;However:&lt;/p&gt;

&lt;p&gt;Anyone can send lamports to a writable account&lt;/p&gt;

&lt;p&gt;This ownership model is one of the key reasons Solana programs remain secure and predictable.&lt;/p&gt;

&lt;p&gt;Programs Don't Store Their Own State&lt;/p&gt;

&lt;p&gt;This is usually the biggest surprise for Web2 developers. In many application frameworks, code and state live together.&lt;/p&gt;

&lt;p&gt;On Solana, programs are intentionally stateless.&lt;/p&gt;

&lt;p&gt;Instead:&lt;br&gt;
Program Account: Contains executable code&lt;br&gt;
Data Account: Stores application state&lt;/p&gt;

&lt;p&gt;The program reads and writes data from separate accounts. Think of it like a web server interacting with a database.  The server contains the business logic. The database contains the data. The same pattern exists on Solana:&lt;br&gt;
Program = Web Server&lt;br&gt;
Data Accounts = Database&lt;br&gt;
This separation allows multiple accounts to reuse the same program logic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rent Exemption&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To prevent people from creating unlimited accounts and filling the network with junk data, Solana requires accounts to maintain a minimum balance. This is called rent exemption. The required amount depends on the size of the account's data. For a basic account with no extra data, it's roughly:0.00089 SOL. &lt;br&gt;
You can check the exact value using: solana rent 0&lt;/p&gt;

&lt;p&gt;or through the RPC method: getMinimumBalanceForRentExemption&lt;/p&gt;

&lt;p&gt;As long as the account maintains the required balance, it remains rent-exempt and stays on-chain.&lt;/p&gt;

&lt;p&gt;A Filesystem Analogy&lt;/p&gt;

&lt;p&gt;The filesystem analogy helped me understand Solana much faster than blockchain terminology.&lt;/p&gt;

&lt;p&gt;Imagine:&lt;/p&gt;

&lt;p&gt;Filesystem&lt;br&gt;
├── Files&lt;br&gt;
├── Executables&lt;br&gt;
├── Metadata&lt;br&gt;
└── Permissions&lt;/p&gt;

&lt;p&gt;Now map that to Solana:&lt;/p&gt;

&lt;p&gt;Solana&lt;br&gt;
├── Accounts&lt;br&gt;
├── Programs&lt;br&gt;
├── Account Metadata&lt;br&gt;
└── Ownership Rules&lt;/p&gt;

&lt;p&gt;More specifically:&lt;/p&gt;

&lt;p&gt;Filesystem  Solana&lt;br&gt;
File    Account&lt;br&gt;
File contents   Data&lt;br&gt;
File owner  Owner Program&lt;br&gt;
Executable file Program Account&lt;br&gt;
Documents   Data Accounts&lt;br&gt;
Operating System Kernel System Program&lt;/p&gt;

&lt;p&gt;The System Program acts a bit like an operating system kernel. It handles core operations such as:&lt;/p&gt;

&lt;p&gt;Creating accounts&lt;br&gt;
Transferring SOL&lt;br&gt;
Assigning ownership&lt;br&gt;
Allocating storage&lt;/p&gt;

&lt;p&gt;Everything else builds on top of that foundation.&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>blockchain</category>
      <category>web3</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Transactions in Solana</title>
      <dc:creator>ajith pkumar</dc:creator>
      <pubDate>Mon, 18 May 2026 14:50:34 +0000</pubDate>
      <link>https://dev.to/ajith_pkumar_e1ccbd40a88b/transactions-in-solana-2m6p</link>
      <guid>https://dev.to/ajith_pkumar_e1ccbd40a88b/transactions-in-solana-2m6p</guid>
      <description>&lt;p&gt;A few days ago, I knew almost nothing about how Solana transactions actually worked. I thought sending a transaction would feel similar to making an API request in a typical backend application — send data, get a response, done. But after building and debugging transactions on Solana devnet, I realized the mental model is very different.&lt;/p&gt;

&lt;p&gt;In Solana, you interact directly with a decentralized state machine where every action is signed, validated, recorded on-chain, and eventually finalized by the network. They require cryptographic signatures. They expire after a short time because of blockhash validity. That last part surprised me the most. Transactions are tied to a recent blockhash, which means they cannot stay valid forever.&lt;br&gt;
I started by creating a simple CLI tool that sends SOL on devnet.&lt;br&gt;
One concept that really changed my understanding was commitment levels.&lt;br&gt;
Initially, I assumed a transaction was either successful or failed. But Solana actually has multiple confirmation stages:&lt;/p&gt;

&lt;p&gt;processed&lt;br&gt;
confirmed&lt;br&gt;
finalized&lt;/p&gt;

&lt;p&gt;I added polling logic to track transactions through each stage.&lt;/p&gt;

&lt;p&gt;await waitForCommitment(rpc, signature, "confirmed");&lt;br&gt;
await waitForCommitment(rpc, signature, "finalized");&lt;/p&gt;

&lt;p&gt;That made me realize blockchain confirmations are not instant yes/no responses. The take time, a transaction that is confirmed is updated to finalized only after 30+ blocks are stacked in front of it. This only takes few seconds. They represent increasing confidence from the network.&lt;br&gt;
Failed Transactions Taught Me More Than Successful Ones. At the end we get the transaction signature providing all the details of the transaction.&lt;/p&gt;

&lt;p&gt;One of the most useful exercises was intentionally breaking transactions.&lt;br&gt;
What surprised me was that failed transactions can still consume fees. That’s why balance checks before sending are important.&lt;/p&gt;

&lt;p&gt;The biggest lesson for me was understanding that transactions are not just “requests.” They are signed, time-sensitive that become part of a permanent public ledger.&lt;/p&gt;

&lt;p&gt;I still have a lot to learn, especially around programs, PDAs, and full dApp architecture, but building and debugging transactions made Solana feel much more real and approachable.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>blockchain</category>
      <category>programming</category>
      <category>web3</category>
    </item>
    <item>
      <title>Day 13: Solana 
I expected blockchain data to be complicated. But it’s essentially a public database where every transaction, account, and state change can be queried openly. Now I would like to understand solana contracts and dApps, create one of my own.</title>
      <dc:creator>ajith pkumar</dc:creator>
      <pubDate>Fri, 08 May 2026 16:41:35 +0000</pubDate>
      <link>https://dev.to/ajith_pkumar_e1ccbd40a88b/week-13-solana-i-expected-blockchain-data-to-be-complicated-but-its-essentially-a-public-5ff6</link>
      <guid>https://dev.to/ajith_pkumar_e1ccbd40a88b/week-13-solana-i-expected-blockchain-data-to-be-complicated-but-its-essentially-a-public-5ff6</guid>
      <description></description>
      <category>beginners</category>
      <category>blockchain</category>
      <category>devjournal</category>
      <category>web3</category>
    </item>
  </channel>
</rss>
