<?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>Demystifying Solana Mints and Token Extensions: A Web2 Developer’s Perspective</title>
      <dc:creator>Akeem Palmer</dc:creator>
      <pubDate>Sun, 07 Jun 2026 03:07:13 +0000</pubDate>
      <link>https://dev.to/akeempalmer/demystifying-solana-mints-and-token-extensions-a-web2-developers-perspective-41g8</link>
      <guid>https://dev.to/akeempalmer/demystifying-solana-mints-and-token-extensions-a-web2-developers-perspective-41g8</guid>
      <description>&lt;p&gt;Transitioning from a traditional Web2 background into the blockchain space can feel daunting, but completing days 29 through 33 of the Solana 100 Days Challenge completely shifted my perspective. On Solana, digital assets are deployed using the Solana Program Library (SPL). These can be fungible assets (like standard utility tokens or stablecoins) or non-fungible tokens (NFTs). As a software engineer getting my hands dirty with Web3 architecture for the first time, seeing these building blocks click together has been incredibly exciting.&lt;/p&gt;

&lt;p&gt;Here is my breakdown of how tokens actually function under the hood on Solana.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Mint Account: The Blueprint
&lt;/h2&gt;

&lt;p&gt;We kicked off the challenge by creating a &lt;strong&gt;Mint Account&lt;/strong&gt; using the newer &lt;strong&gt;Token-2022 Program&lt;/strong&gt; (also known as the Token Extension Program). If you are coming from Web2, the easiest mental model is to think of the Mint Account as a &lt;em&gt;locked filing cabinet&lt;/em&gt; or a &lt;em&gt;master blueprint&lt;/em&gt;. This account does not actually hold your token balance; instead, it defines the global rules for the asset, such as the total supply, the number of decimals, and the authorized public keys allowed to mint or freeze the tokens.&lt;/p&gt;

&lt;p&gt;By leveraging &lt;strong&gt;Token Extensions&lt;/strong&gt;, we can natively bake metadata (like the token name, symbol, description, and image URI) directly into the mint initialization transaction.&lt;/p&gt;

&lt;p&gt;One of the coolest extensions we experimented with is the &lt;code&gt;--enable-non-transferable&lt;/code&gt; flag. When you pass this flag during creation, the mint permanently restricts the token from ever moving between wallets. It creates a "soulbound" asset perfect for digital certificates, achievement badges, or KYC verification records. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The catch?&lt;/strong&gt; This rule is immutable; you can only configure it at the exact moment the mint is deployed, and it can never be reversed. On the flip side, leaving this flag off creates standard transferable tokens, which form the backbone of everyday Web3 currencies and stablecoins.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  2. Token Accounts: The Folders Inside the Cabinet
&lt;/h2&gt;

&lt;p&gt;If the Mint Account is the master blueprint, how do we actually track who owns what? This is where &lt;strong&gt;Token Accounts&lt;/strong&gt; (and specifically, Associated Token Accounts, or ATAs) come into play.&lt;/p&gt;

&lt;p&gt;Think of a Token Account as an &lt;em&gt;individual folder&lt;/em&gt; placed inside our main filing cabinet. The folder is explicitly mapped to a specific user's wallet address. While the Mint Account coordinates the asset's rules, your actual token balance sits safely inside your unique Token Account.&lt;/p&gt;

&lt;p&gt;Before you can mint new supply or receive a transfer from someone else, that specific Token Account folder must be initialized on-chain. This structural segregation of data is what allows Solana to process transactions in parallel at lightning speeds, keeping assets secure and organized.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Execution: Minting, Burning, and Moving Assets
&lt;/h2&gt;

&lt;p&gt;Once your data accounts are active, you can interact with the Token-2022 program to manage the asset's lifecycle based on its initialized extensions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Non-Transferable Tokens:&lt;/strong&gt; The mint authority can issue tokens to a user's wallet folder, and the owner can safely burn (destroy) them if they expire or need to be revoked. However, attempting to send them to a friend will result in an immediate program-level rejection.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Transferable Tokens:&lt;/strong&gt; When you transfer tokens to a public wallet, the network routes the assets from your folder into theirs. If the recipient doesn't have a folder yet, a new Associated Token Account must be opened for them before the transfer can clear.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Stepping through these operations made it clear how powerful Solana's architecture is. Instead of writing complex, risky custom smart contracts to handle basic asset behaviors, the Token-2022 Program allows us to implement enterprise-grade logic right out of the box using clear, concise program extensions.&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>web3</category>
      <category>blockchain</category>
      <category>solana</category>
    </item>
    <item>
      <title>Understanding Solana Accounts: The Blockchain Filesystem</title>
      <dc:creator>Akeem Palmer</dc:creator>
      <pubDate>Tue, 02 Jun 2026 05:12:54 +0000</pubDate>
      <link>https://dev.to/akeempalmer/understanding-solana-accounts-the-blockchain-filesystem-49d9</link>
      <guid>https://dev.to/akeempalmer/understanding-solana-accounts-the-blockchain-filesystem-49d9</guid>
      <description>&lt;p&gt;If you want to understand how Solana works under the hood, you have to understand &lt;strong&gt;accounts&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;I like to think of the Solana blockchain as a &lt;strong&gt;distributed operating system&lt;/strong&gt;, where every account is simply a &lt;strong&gt;file on a filesystem&lt;/strong&gt;. Unlike traditional Web2 architectures where applications live on a server and data lives in a database, Solana stores everything using a unified file-type system. &lt;/p&gt;

&lt;p&gt;Here is a breakdown of how these "files" work, what they contain, and how they shape the network.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 5 Anatomy Fields of a Solana Account
&lt;/h2&gt;

&lt;p&gt;Every single account on Solana shares the exact same five-field structure. This structure is mapped to a 32-byte address, ensuring it aligns perfectly with IPv6 minimum MTU requirements. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lamports:&lt;/strong&gt; The account's SOL balance, where 1 SOL = 1,000,000,000 lamports.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data:&lt;/strong&gt; A byte array that stores arbitrary state. For a wallet, this might be token balances; for a program, it stores the executable byte code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Owner:&lt;/strong&gt; The specific program that controls the account (for most standard wallets, this is the System Program). &lt;strong&gt;Only the owner program can modify an account’s data or debit its lamports.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Executable:&lt;/strong&gt; A binary flag (true/false) that tells the network whether the account can execute code and instructions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rent Epoch:&lt;/strong&gt; A legacy field (now deprecated) previously used to track the balance an account needed to maintain to avoid paying storage rent. Today, almost all accounts are loaded with enough SOL to be permanently rent-exempt.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Two Main Categories: Logic vs. Data
&lt;/h2&gt;

&lt;p&gt;Solana strictly separates code from data. Because of this, accounts broadly fall into two categories:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Executable Accounts (The Apps)
&lt;/h3&gt;

&lt;p&gt;These accounts have their &lt;code&gt;executable&lt;/code&gt; flag set to true. They contain smart contract code (program logic) stored directly on the blockchain that automatically runs when specific conditions are met. Think of these as the applications or software running on the OS.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Non-Executable Accounts (The Databases)
&lt;/h3&gt;

&lt;p&gt;These accounts cannot execute code. Instead, they store data-such as balances, user info, or state-that executable programs read from and write to. Think of these as the databases or storage files used by the apps.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Four Functional Account Types
&lt;/h2&gt;

&lt;p&gt;To make development practical, these categories are split into four functional types that you interact with daily:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Account Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Web2 Analogy&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;System Accounts&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Regular user wallets (e.g., Phantom or Solflare). They hold your SOL balance and do not execute code.&lt;/td&gt;
&lt;td&gt;Your personal bank account&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Program Accounts&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Accounts that store compiled smart contract logic. They dictate &lt;em&gt;how&lt;/em&gt; things work but don't hold user state.&lt;/td&gt;
&lt;td&gt;The application software&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data Accounts&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Accounts managed by programs to store specific information like user profiles, token balances, or settings.&lt;/td&gt;
&lt;td&gt;A database row or file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sysvars (System Variables)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Special global accounts that provide real-time network info (e.g., current time, fees, slot data).&lt;/td&gt;
&lt;td&gt;The system clock / OS settings&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  The Big Picture: Everything is a File
&lt;/h2&gt;

&lt;p&gt;By looking at Solana through the lens of an operating system, the architecture becomes incredibly intuitive. Every account is just a file, and each file consists of two things:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Metadata:&lt;/strong&gt; Who owns it, whether it can execute code, and how much money (lamports) it holds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contents:&lt;/strong&gt; The actual data or program code stored inside.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In Solana, programs act &lt;em&gt;on&lt;/em&gt; accounts rather than possessing their own internal memory. By treating everything as a unified file system, Solana achieves incredible speed, transparency, and composability.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>web3</category>
      <category>solana</category>
      <category>100daysofsolana</category>
    </item>
    <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>
