<?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: Elizabeth Afolabi</title>
    <description>The latest articles on DEV Community by Elizabeth Afolabi (@bettyafolabi).</description>
    <link>https://dev.to/bettyafolabi</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%2F1464865%2Fe9f2f036-f4c0-4e09-8d7c-a3b74ae5dc30.jpeg</url>
      <title>DEV Community: Elizabeth Afolabi</title>
      <link>https://dev.to/bettyafolabi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bettyafolabi"/>
    <language>en</language>
    <item>
      <title>How Identity Works on Solana (vs Web2)</title>
      <dc:creator>Elizabeth Afolabi</dc:creator>
      <pubDate>Sat, 02 May 2026 17:03:39 +0000</pubDate>
      <link>https://dev.to/bettyafolabi/how-identity-works-on-solana-vs-web2-4k7p</link>
      <guid>https://dev.to/bettyafolabi/how-identity-works-on-solana-vs-web2-4k7p</guid>
      <description>&lt;p&gt;I recently joined the 100 Days of Solana challenge, and in the first few days I did some pretty basic things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generated a wallet&lt;/li&gt;
&lt;li&gt;Funded it using devnet&lt;/li&gt;
&lt;li&gt;Connected it to apps&lt;/li&gt;
&lt;li&gt;Sent transactions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sounds simple, right?&lt;/p&gt;

&lt;p&gt;But it raised a bigger question for me:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If there’s no email/password… how does identity even work here?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you're coming from Web2, this part can feel confusing at first. Let me break it down based on what I've learnt.&lt;/p&gt;

&lt;h3&gt;
  
  
  Web2 Identity (What We’re Used To)
&lt;/h3&gt;

&lt;p&gt;In Web2, identity is straightforward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You sign up with email + password&lt;/li&gt;
&lt;li&gt;Your details are stored in a database&lt;/li&gt;
&lt;li&gt;When you log in, the server verifies you&lt;/li&gt;
&lt;li&gt;A session or token keeps you logged in&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So basically, the server is responsible for knowing who you are.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Shift: No Central Authority
&lt;/h3&gt;

&lt;p&gt;On Solana, that model changes completely. The best way to think about it is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Using a Solana wallet is like logging in with OAuth, except there’s no Google or Facebook verifying you. Identity is proven cryptographically by your wallet.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There’s no central server in charge of identity. Instead, identity is tied to your wallet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Your Wallet = Your Identity
&lt;/h3&gt;

&lt;p&gt;A wallet (like Phantom) is built on something called a keypair:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Public key - your wallet address (like a username)&lt;/li&gt;
&lt;li&gt;Private key - used to approve actions (kept secret)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So when we say, “This is my identity on Solana”. What we really mean is “I control this wallet address.”&lt;/p&gt;

&lt;h3&gt;
  
  
  Signing = Authentication
&lt;/h3&gt;

&lt;p&gt;This is the most important part. In Web2, you send your password to prove who you are&lt;br&gt;
In Solana, you sign a message or transaction&lt;/p&gt;

&lt;p&gt;Here’s what actually happens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You interact with a dApp&lt;/li&gt;
&lt;li&gt;The app asks your wallet to approve an action&lt;/li&gt;
&lt;li&gt;Your wallet prompts you&lt;/li&gt;
&lt;li&gt;You approve&lt;/li&gt;
&lt;li&gt;Your wallet signs using your private key&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That signature is the proof. You don’t log in with a password, you prove who you are by signing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Also important:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your private key is never exposed. It stays inside the wallet.&lt;br&gt;
The password you enter in your wallet is not what proves it’s you, it only unlocks your wallet locally.&lt;/p&gt;

&lt;p&gt;When you connect your wallet to an app, The app gets your public address. It never gets your private key.&lt;br&gt;
That’s why wallet connections are considered secure.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Real Flow (From My Experience)
&lt;/h3&gt;

&lt;p&gt;Here’s a typical flow based on what I’ve been building:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I click “Connect Wallet”&lt;/li&gt;
&lt;li&gt;My wallet (Phantom) asks me to approve&lt;/li&gt;
&lt;li&gt;The app gets my public key&lt;/li&gt;
&lt;li&gt;The app uses RPC to fetch my balance&lt;/li&gt;
&lt;li&gt;I enter an amount to send&lt;/li&gt;
&lt;li&gt;I click send&lt;/li&gt;
&lt;li&gt;My wallet asks me to sign&lt;/li&gt;
&lt;li&gt;I approve, transaction goes through&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Where RPC Comes In
&lt;/h3&gt;

&lt;p&gt;RPC (Remote Procedure Call) is just how apps talk to the blockchain. It fetches balances, sends transactions and reads data. It does not know who you are or manage identity. It just responds to requests.&lt;/p&gt;

&lt;h3&gt;
  
  
  So What Replaces Sessions?
&lt;/h3&gt;

&lt;p&gt;In Web2, you log in once and session persists.&lt;/p&gt;

&lt;p&gt;In Solana, there’s no real “session”. Your identity is simply your connected wallet. Your ability to sign when needed. If you disconnect, that’s it. No session stored somewhere.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;At first, it feels strange not having a login system.&lt;/p&gt;

&lt;p&gt;But once you understand this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Identity = wallet&lt;br&gt;
Authentication = signature&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Everything starts to make sense.&lt;/p&gt;

&lt;p&gt;If you're just getting into Solana like I am, this is one of the most important concepts to understand early.&lt;/p&gt;

&lt;p&gt;It makes everything else easier.&lt;/p&gt;

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