<?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: Akeem Palmer</title>
    <description>The latest articles on DEV Community by Akeem Palmer (@akeempalmer).</description>
    <link>https://dev.to/akeempalmer</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%2F3889865%2F66a62b7b-cf69-49e5-be07-0a782bad2567.jpeg</url>
      <title>DEV Community: Akeem Palmer</title>
      <link>https://dev.to/akeempalmer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/akeempalmer"/>
    <language>en</language>
    <item>
      <title>Solana Transactions Explained for Backend Developers</title>
      <dc:creator>Akeem Palmer</dc:creator>
      <pubDate>Mon, 18 May 2026 01:34:24 +0000</pubDate>
      <link>https://dev.to/akeempalmer/solana-transactions-explained-for-backend-developers-122l</link>
      <guid>https://dev.to/akeempalmer/solana-transactions-explained-for-backend-developers-122l</guid>
      <description>&lt;p&gt;Before starting this challenge, I went from knowing next to nothing about Web3 transactions to being able to break down and extract granular details from the Solana ledger. That is progress. &lt;/p&gt;

&lt;p&gt;As backend developers, we are deeply familiar with how data moves in traditional systems. In this post, I will break down Solana transactions using the mental models we already use every day, and look at how they differ from the standard Web2 API calls we are used to.&lt;/p&gt;




&lt;h2&gt;
  
  
  Reframing the Architecture: From Private Servers to Shared State
&lt;/h2&gt;

&lt;p&gt;Before diving into Solana, let’s ground ourselves in Web2. An API (Application Programming Interface) is how we communicate between systems-whether via HTTP, gRPC, WebSockets, or SOAP. These communication techniques fundamentally rely on private servers, centralized databases, and authentication tied to a single entity's environment. &lt;/p&gt;

&lt;p&gt;Web3 completely flips this paradigm. In Web3, the blockchain operates as a decentralized, public, globally shared state machine. Because there is no single authoritative server, any action that mutates this state must be &lt;strong&gt;atomic&lt;/strong&gt;. If you have ever written a complex database transaction where multiple queries must either all succeed or all roll back together, you already understand the core execution model of Web3.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is a Solana Transaction?
&lt;/h2&gt;

&lt;p&gt;According to the official Solana documentation: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"A transaction includes one or more instructions, the signatures of accounts that authorize the changes, and a recent blockhash. The network processes all instructions in a transaction together. If any instruction fails, the entire transaction fails and all state changes are reverted."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If we map this directly to Web2, a Solana transaction is the functional equivalent of an API request designed to trigger an atomic state change on a database. &lt;/p&gt;

&lt;h3&gt;
  
  
  Mapping the Data: Solana vs. HTTP
&lt;/h3&gt;

&lt;p&gt;To make this granular, let’s look at how a Solana transaction structure maps to a standard HTTP request:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Solana Transaction Component&lt;/th&gt;
&lt;th&gt;Web2 HTTP Equivalent&lt;/th&gt;
&lt;th&gt;Purpose / Function&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Transaction Signatures&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Auth Headers / JWT / API Keys&lt;/td&gt;
&lt;td&gt;Proves identity and cryptographic authorization to mutate data.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Transaction Message&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;HTTP Request (Headers + Body)&lt;/td&gt;
&lt;td&gt;The container holding the state change instructions and metadata.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Instructions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;HTTP Request Body / Payload&lt;/td&gt;
&lt;td&gt;The specific business logic execution (e.g., calling a specific function with arguments).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Account Keys&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Database Keys / URL Route Params&lt;/td&gt;
&lt;td&gt;Explicitly declares &lt;em&gt;which&lt;/em&gt; records/accounts will be read from or written to.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Recent Blockhash&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Idempotency Keys / Nonce / TTL&lt;/td&gt;
&lt;td&gt;Prevents replay attacks and acts as a time-to-live mechanism for the request.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  The Network Layer: Why Solana is High-Performance
&lt;/h2&gt;

&lt;p&gt;As backend engineers, we are used to treating network bandwidth as relatively cheap. A typical HTTP header alone can easily exceed 1,000 bytes due to bloated cookies, user-agent strings, and verbose metadata. &lt;/p&gt;

&lt;p&gt;Solana operates under strict architectural constraints. &lt;strong&gt;A Solana transaction is strictly limited to 1,232 bytes.&lt;/strong&gt; This size isn't arbitrary; it is designed to fit perfectly within the IPv6 MTU (Maximum Transmission Unit) size limit of 1,280 bytes, leaving exactly 48 bytes for network packet overhead. &lt;/p&gt;

&lt;p&gt;Because Solana transactions are entirely data-dense and predictable, validators can ingest, verify, and parallelize them instantly over UDP-based protocols like &lt;strong&gt;QUIC&lt;/strong&gt;. Unlike heavy HTTP payloads that require TCP handshakes, packet reassembly, and massive memory overhead, Solana transactions are built for raw, low-latency execution.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Transitioning from Web2 to Web3 doesn't mean throwing away your backend knowledge. It means taking concepts you already know-like database atomicity, payload optimization, and cryptography-and applying them to a distributed runtime environment. Understanding the transaction lifecycle is the first step toward building highly optimized, scalable on-chain applications.&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>web3</category>
      <category>blockchain</category>
      <category>solana</category>
    </item>
    <item>
      <title>Private Database (Web2) vs Public Account (Web3 - Solana)</title>
      <dc:creator>Akeem Palmer</dc:creator>
      <pubDate>Sun, 03 May 2026 00:12:17 +0000</pubDate>
      <link>https://dev.to/akeempalmer/private-database-web2-vs-public-account-web3-solana-407b</link>
      <guid>https://dev.to/akeempalmer/private-database-web2-vs-public-account-web3-solana-407b</guid>
      <description>&lt;p&gt;I've officially wrapped up the second week of my Solana deep dive. This week was all about moving from the "private" silos of Web2 databases to the "public" transparency of Blockchain and Solana accounts. &lt;/p&gt;

&lt;p&gt;Here are my key takeaways on how Solana handles data:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The Anatomy of an Account&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Unlike a row in a SQL database, every Solana account contains five specific fields:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lamports:&lt;/strong&gt; The SOL balance (1 SOL = 10^9 lamports)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data:&lt;/strong&gt; The actual state stored in the account.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Owner:&lt;/strong&gt; The Program ID that has the authority to modify the data. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Executable:&lt;/strong&gt; A boolean flag indicating if the account is a smart program.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rent Epoch:&lt;/strong&gt; (Now deprecated) Historically used for storage management. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Rent: "Living" on the Blockchain&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In Web3, storage isn't free. While Transaction Fees cover the cost of processing, Rent covers the cost of storage. It scales linearly with data size.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To be &lt;strong&gt;Rent Exempt&lt;/strong&gt;, an account must maintain a balance equivalent to 2 years of rent. Most modern wallets handle this automatically!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Transactions: Signatures &amp;amp; Messages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Transparency is the superpower of the blockchain. Every transaction is public and cryptographically signed. A transaction consists of a Signature and a Message. The message itself contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Header (metadata)&lt;/li&gt;
&lt;li&gt;Account Keys (who is involved)&lt;/li&gt;
&lt;li&gt;Recent Block hash (to prevent replays)&lt;/li&gt;
&lt;li&gt;Instructions (the actual logic being executed)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw3ilnhk4s3qt4ro5vyqs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw3ilnhk4s3qt4ro5vyqs.png" alt="Solana's account structure" width="800" height="183"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F727lg3wwmpjmru00zcba.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F727lg3wwmpjmru00zcba.png" alt="Solana's production network vs development network" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm excited to keep building and sharing this journey with you guys!&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>blockchain</category>
      <category>web3</category>
      <category>solana</category>
    </item>
    <item>
      <title>Day 7: Building My First Solana Wallet from Scratch</title>
      <dc:creator>Akeem Palmer</dc:creator>
      <pubDate>Sun, 26 Apr 2026 17:36:53 +0000</pubDate>
      <link>https://dev.to/akeempalmer/day-7-building-my-first-solana-wallet-from-scratch-21ik</link>
      <guid>https://dev.to/akeempalmer/day-7-building-my-first-solana-wallet-from-scratch-21ik</guid>
      <description>&lt;p&gt;I generated my first Solana key-pair using the CLI (Command Line Interface) and funded it through the Solana faucet, as well as a transfer from my Solflare wallet.&lt;/p&gt;

&lt;p&gt;After just six days in the 100 Days of Solana challenge, I’ve gained a solid foundation on how Solana works; covering identity, SOL, and Lamports.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9iogiiz0afq0kmk6ywwq.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9iogiiz0afq0kmk6ywwq.JPG" alt="Screenshot of my CLI wallet" width="800" height="198"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe2zu3xwwdc5w9bm9iror.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe2zu3xwwdc5w9bm9iror.PNG" alt="Making a transfer to my CLI wallet from my Solflare wallet" width="800" height="1731"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re interested, check out my previous post on Solana identity: &lt;a href="https://dev.to/akeempalmer/exploring-web3-and-how-solana-handles-identity-468f"&gt;Exploring Web3 and How Solana Handles Identity&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Looking forward to continuing this journey and sharing more as I progress.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>web3</category>
      <category>100daysofsolana</category>
      <category>solana</category>
    </item>
    <item>
      <title>Exploring Web3 and How Solana Handles Identity</title>
      <dc:creator>Akeem Palmer</dc:creator>
      <pubDate>Sun, 26 Apr 2026 15:07:07 +0000</pubDate>
      <link>https://dev.to/akeempalmer/exploring-web3-and-how-solana-handles-identity-468f</link>
      <guid>https://dev.to/akeempalmer/exploring-web3-and-how-solana-handles-identity-468f</guid>
      <description>&lt;p&gt;From Web2 to Web3, identity remains an important aspect for authentication and authorization for both users and the server owners. However, the underlying architecture is shifting. In Web2, we rely on usernames and passwords stored on server owner’s hardware or handled by SSO vendors like Auth0, Google or Microsoft. On the other hand, in Web3 we swap databases for cryptographic keys. In this post, we’ll dive into how the Solana network uses these keys for On-Chain Identification. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Key-pair: Your New Credentials&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Solana is a high-performance network powering decentralized finance (DeFi), NFTs and decentralized applications (dApps). Unlike traditional systems where a server “owns” your identity, Solana uses a Public Key as your unique address. &lt;/p&gt;

&lt;p&gt;Think of it this way:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Public Key (Your Username):&lt;/strong&gt; A unique 32-byte address. This is what people use to send you tokens.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private Key (Your Password):&lt;/strong&gt; A digital signature that stays on your personal device. You use this to “sign” and authorize transactions. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Ed25519 vs. PDAs&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Wallets usually use the Ed25519 digital signature, with the exception of Multisig Wallets or Smart wallets (Escrows, etc..), When you create an account, it must be accompanied by a private key that you or a secure third-party vendor maintains. &lt;/p&gt;

&lt;p&gt;Solana uses PDAs (Program Derived Addresses), which are unique addresses that is not associated with a private key. Instead, they rely on a Program ID and specific seeds like user ID or user public key for authentication. This allows programs to programmatically sign for accounts. We can think of it like a service account in a cloud environment. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Beyond Usernames: What Identity Enables&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;On-chain identity isn’t just a replacement for a login, it’s a self-custodied foundation for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Token Ownership:&lt;/strong&gt; Providing what assets you hold.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Governance:&lt;/strong&gt; Your right to vote on protocol changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reputation:&lt;/strong&gt; Your history on the public ledger is permanent and verifiable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because this is cryptographic, it works across every application on the network without needing server permission or an API integration. Your identity allows you to be discovered on the network, receive tokens, and maintain a wallet assignment globally.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Math: SOL and Lamports&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Once you have your identity, you’ll interact with SOL, Solana’s native cryptocurrency. Programmatically, we don’t usually work in whole SOL, we work in Lamports. Lamports are SOL’s smallest fractional unit. &lt;/p&gt;

&lt;p&gt;1 SOL = 1,000,000,000 (10⁹) Lamports.&lt;/p&gt;

&lt;p&gt;Think of Lamports as cents or pennies and SOL as dollars. This allows for high-precision transactions without the floating-point errors we try to avoid in financial code.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion: Who Owns The Server?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The biggest shift from Web2 to Web3 is ownership. In Web2, there is one true owner: the entity hosting the servers. In Web3, the network is decentralized and hosted across the globe. &lt;/p&gt;

&lt;p&gt;I’m currently participating in the &lt;a href="https://www.mlh.com/events/100-days-of-solana/challenges" rel="noopener noreferrer"&gt;100 Days of Solana challenge&lt;/a&gt; hosted by &lt;a href="https://www.mlh.com/" rel="noopener noreferrer"&gt;Major League Hacking (MLH)&lt;/a&gt;. If you’re a developer looking to move from centralized databases to the blockchain, I highly encourage you to join!&lt;/p&gt;

&lt;p&gt;I’d love to hear your feedback on this research in the comments below. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Image Generated By A.I&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>web3</category>
      <category>solana</category>
      <category>100daysofsolana</category>
    </item>
  </channel>
</rss>
