<?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: Sanjaya Bhatta</title>
    <description>The latest articles on DEV Community by Sanjaya Bhatta (@sb58).</description>
    <link>https://dev.to/sb58</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F99mvlsfu5tfj9m7ku25d.png</url>
      <title>DEV Community: Sanjaya Bhatta</title>
      <link>https://dev.to/sb58</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sb58"/>
    <language>en</language>
    <item>
      <title>A week of Learning Solana #100DaysOfSolana</title>
      <dc:creator>Sanjaya Bhatta</dc:creator>
      <pubDate>Tue, 28 Apr 2026 15:47:49 +0000</pubDate>
      <link>https://dev.to/sb58/100daysofsolana-54lm</link>
      <guid>https://dev.to/sb58/100daysofsolana-54lm</guid>
      <description>&lt;h1&gt;
  
  
  I spent 7 days learning Solana wallets — here’s what actually clicked
&lt;/h1&gt;

&lt;p&gt;I’ve mostly worked in Web2 stuff, so when I started Solana, I expected something like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;create account&lt;/li&gt;
&lt;li&gt;set password&lt;/li&gt;
&lt;li&gt;get token-based auth or something&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But that’s not what happens at all.&lt;/p&gt;

&lt;p&gt;There is no “account creation” step.&lt;/p&gt;

&lt;p&gt;You just generate a keypair and… that’s your identity.&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 1 — Identity is just a keypair
&lt;/h2&gt;

&lt;p&gt;First thing I did was generate a wallet in code:&lt;/p&gt;

&lt;p&gt;`&lt;br&gt;
import { generateKeyPairSigner } from "@solana/kit";&lt;/p&gt;

&lt;p&gt;const wallet = await generateKeyPairSigner();&lt;br&gt;
console.log(wallet.address);&lt;br&gt;
`&lt;/p&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;p&gt;No email. No signup. No backend.&lt;/p&gt;

&lt;p&gt;Just a public key and a private key.&lt;/p&gt;

&lt;p&gt;At this point it honestly felt like “okay but where is the account actually stored?”&lt;/p&gt;

&lt;p&gt;Answer: nowhere.&lt;/p&gt;

&lt;p&gt;You are the account.&lt;br&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%2Fcriskho9ksmstmj9tk72.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%2Fcriskho9ksmstmj9tk72.png" alt=" " width="800" height="227"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Day 2 — Oh, wallets are just files
&lt;/h2&gt;

&lt;p&gt;Next step was making it persistent.&lt;/p&gt;

&lt;p&gt;So instead of generating a new wallet every time, I saved it into a JSON file.&lt;/p&gt;

&lt;p&gt;That’s when it started feeling a bit… raw.&lt;/p&gt;

&lt;p&gt;Because suddenly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;my “wallet” = a file on my machine&lt;/li&gt;
&lt;li&gt;my “identity” = bytes in that file&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If someone has that file, they are you on-chain.&lt;/p&gt;

&lt;p&gt;No recovery. No reset.&lt;/p&gt;

&lt;p&gt;Very different from Web2 where you can just email support.&lt;br&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%2F7j6t8rtdxl2pda9x3192.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%2F7j6t8rtdxl2pda9x3192.png" alt=" " width="800" height="227"&gt;&lt;/a&gt;&lt;br&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%2F5fvak88k8unw1qjo4t82.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%2F5fvak88k8unw1qjo4t82.png" alt=" " width="774" height="144"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Day 3 — SOL is not really what the system uses
&lt;/h2&gt;

&lt;p&gt;Then I hit something small but important:&lt;/p&gt;

&lt;p&gt;SOL is just a human label.&lt;/p&gt;

&lt;p&gt;Under the hood it’s all lamports:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1 SOL = 1,000,000,000 lamports
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Everything in code uses lamports, not SOL.&lt;/p&gt;

&lt;p&gt;So if you mess up and send &lt;code&gt;1&lt;/code&gt; instead of &lt;code&gt;1e9&lt;/code&gt;, you didn’t send 1 SOL… you sent basically nothing.&lt;/p&gt;

&lt;p&gt;This is one of those “good to know early or suffer later” things.&lt;br&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%2Fjtkzqh6uckvfanhv298g.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%2Fjtkzqh6uckvfanhv298g.png" alt=" " width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 4 — Browser wallets feel like the “real product”
&lt;/h2&gt;

&lt;p&gt;Then I tried Phantom.&lt;/p&gt;

&lt;p&gt;This felt closer to what most people think “wallets” are.&lt;/p&gt;

&lt;p&gt;Setup looked like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;create seed phrase&lt;/li&gt;
&lt;li&gt;set password&lt;/li&gt;
&lt;li&gt;install extension&lt;/li&gt;
&lt;li&gt;connect to app&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the important part:&lt;/p&gt;

&lt;p&gt;My app never sees my private key.&lt;/p&gt;

&lt;p&gt;Instead it just asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“can you sign this?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And Phantom handles the rest.&lt;/p&gt;

&lt;p&gt;That was the first time Solana started feeling like a real ecosystem, not just scripts.&lt;/p&gt;

&lt;h2&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%2F75h8fb14k3qv712yv4gx.png" alt=" " width="800" height="381"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Day 5 — There isn’t one wallet type
&lt;/h2&gt;

&lt;p&gt;This day was more comparison than coding.&lt;/p&gt;

&lt;p&gt;I tried CLI, browser, and mobile wallets and realized something simple:&lt;/p&gt;

&lt;p&gt;They are all the same thing underneath.&lt;/p&gt;

&lt;p&gt;Just stored differently:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CLI → file on disk (fast, insecure)&lt;/li&gt;
&lt;li&gt;Browser → encrypted extension (balanced)&lt;/li&gt;
&lt;li&gt;Mobile → secure storage + biometrics (more protected)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So it’s not really “which wallet is best”&lt;/p&gt;

&lt;p&gt;It’s more:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;what are you trying to do?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;scripts, dApps, or holding funds&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 6 — Identity finally clicked
&lt;/h2&gt;

&lt;p&gt;This was the big mental shift.&lt;/p&gt;

&lt;p&gt;In Web2:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;identity = database record&lt;/li&gt;
&lt;li&gt;platform owns access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In Solana:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;identity = ability to sign&lt;/li&gt;
&lt;li&gt;no one can “reset” it for you&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have the private key → you are the account&lt;br&gt;
If you lose it → it’s gone&lt;/p&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;p&gt;No middle layer.&lt;/p&gt;

&lt;p&gt;No support tickets.&lt;/p&gt;

&lt;p&gt;Kind of scary, but also… very clean.&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 7 — Sharing it made it clearer
&lt;/h2&gt;

&lt;p&gt;The last step wasn’t technical.&lt;/p&gt;

&lt;p&gt;It was just writing and sharing what I learned.&lt;/p&gt;

&lt;p&gt;And honestly, that’s where things started making sense properly.&lt;/p&gt;

&lt;p&gt;Because when you try to explain it simply, you realize:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;wallets are just key storage&lt;/li&gt;
&lt;li&gt;identity is just cryptographic proof&lt;/li&gt;
&lt;li&gt;apps don’t “log you in” — they just verify signatures&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 Final takeaway
&lt;/h2&gt;

&lt;p&gt;If I had to reduce everything I learned:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A Solana wallet is just a keypair. Everything else is UX around signing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;p&gt;No accounts. No passwords. No central identity.&lt;/p&gt;

&lt;p&gt;Just keys.&lt;/p&gt;

&lt;p&gt;And once that clicks, everything else (tokens, NFTs, DeFi) becomes way easier to understand.&lt;/p&gt;




&lt;p&gt;If you’re coming from Web2, this is probably the hardest mindset shift:&lt;/p&gt;

&lt;p&gt;You don’t “log in” to Solana.&lt;/p&gt;

&lt;p&gt;You just prove you are already you.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This post is part of my #100DaysOfSolana series. Follow along as I go from zero to building on Solana, one day at a time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>solana</category>
      <category>100daysofsolana</category>
    </item>
    <item>
      <title>I Thought Solana Identity Would Be Complicated… It’s Actually Just SSH Keys (Kind Of)</title>
      <dc:creator>Sanjaya Bhatta</dc:creator>
      <pubDate>Tue, 28 Apr 2026 15:18:57 +0000</pubDate>
      <link>https://dev.to/sb58/i-thought-solana-identity-would-be-complicated-its-actually-just-ssh-keys-kind-of-gbc</link>
      <guid>https://dev.to/sb58/i-thought-solana-identity-would-be-complicated-its-actually-just-ssh-keys-kind-of-gbc</guid>
      <description>&lt;h2&gt;
  
  
  Day 5 of Learning Solana: I Finally Understand Identity (It’s Just SSH Keys 😅)
&lt;/h2&gt;

&lt;p&gt;I have been learning Solana for the past few days, and I’ll be honest:&lt;/p&gt;

&lt;p&gt;“Identity on blockchain” sounded like one of those things I would pretend to understand… but actually didn’t.&lt;/p&gt;

&lt;p&gt;I expected:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;complicated concepts
&lt;/li&gt;
&lt;li&gt;heavy cryptography
&lt;/li&gt;
&lt;li&gt;lots of “just trust me” explanations
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But after a week, it finally clicked.&lt;/p&gt;

&lt;p&gt;And now I feel like I was overthinking it the whole time.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Was Expecting vs Reality
&lt;/h2&gt;

&lt;p&gt;Before this, my mental model was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Blockchain identity = some new complicated system I need to memorize&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Actual reality:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It’s basically SSH keys.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;p&gt;Once I saw it that way, everything started making sense.&lt;/p&gt;




&lt;h2&gt;
  
  
  Quick Reality Check: How Web2 Identity Works
&lt;/h2&gt;

&lt;p&gt;As a Web2 dev, this is our default:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;user signs up
&lt;/li&gt;
&lt;li&gt;we store username/email + password
&lt;/li&gt;
&lt;li&gt;we handle auth
&lt;/li&gt;
&lt;li&gt;we reset passwords
&lt;/li&gt;
&lt;li&gt;we manage sessions
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We have all built this 100 times.&lt;/p&gt;

&lt;p&gt;And we don’t question it anymore.&lt;/p&gt;

&lt;p&gt;But also… we don’t really own anything here.&lt;/p&gt;

&lt;p&gt;If your app uses my database:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I can lock you out
&lt;/li&gt;
&lt;li&gt;I can delete your account
&lt;/li&gt;
&lt;li&gt;I control access
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;“Your account” is kind of an illusion.&lt;/p&gt;




&lt;h2&gt;
  
  
  Solana: No Accounts, Just Keys
&lt;/h2&gt;

&lt;p&gt;Here’s the shift.&lt;/p&gt;

&lt;p&gt;On Solana, there are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;no usernames
&lt;/li&gt;
&lt;li&gt;no passwords
&lt;/li&gt;
&lt;li&gt;no central database
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your identity is just:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a &lt;strong&gt;public key&lt;/strong&gt; (your address)
&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;private key&lt;/strong&gt; (your proof)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You generate this yourself.&lt;/p&gt;

&lt;p&gt;No signup.&lt;br&gt;
No email.&lt;br&gt;
No “create account” button.&lt;/p&gt;

&lt;p&gt;That part alone felt weird at first.&lt;/p&gt;




&lt;h2&gt;
  
  
  The SSH Moment (Where It Finally Clicked)
&lt;/h2&gt;

&lt;p&gt;The turning point for me was thinking about SSH.&lt;/p&gt;

&lt;p&gt;With SSH:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you generate a keypair
&lt;/li&gt;
&lt;li&gt;you give the server your public key
&lt;/li&gt;
&lt;li&gt;you prove who you are using your private key
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now replace:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“server” → with the entire Solana network
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And suddenly:&lt;/p&gt;

&lt;p&gt;Oh.&lt;/p&gt;

&lt;p&gt;This is the same idea.&lt;/p&gt;

&lt;p&gt;Just bigger.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Ugly Truth: Your Identity Looks Like This
&lt;/h2&gt;

&lt;p&gt;Instead of a nice username like &lt;code&gt;username_dev&lt;/code&gt;, you get this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;14grJpemFaf88c8tiVb77W7TYg2W3ir6pfkKz3YjhhZ5&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Very user-friendly. Totally memorable.😅&lt;/p&gt;

&lt;p&gt;It’s a public key (Base58 encoded, which just avoids confusing characters).&lt;/p&gt;

&lt;p&gt;Important part:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you didn’t pick it
&lt;/li&gt;
&lt;li&gt;no one gave it to you
&lt;/li&gt;
&lt;li&gt;it’s not stored in some company DB
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You just have it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Part That Actually Changed My Thinking
&lt;/h2&gt;

&lt;p&gt;This is where things got real for me.&lt;/p&gt;

&lt;p&gt;In Web2:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I “own” my account because a company says I do.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In Solana:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If I have the private key, I own it. Period.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No support team.&lt;br&gt;
No admin panel.&lt;br&gt;
No “forgot password.”&lt;/p&gt;

&lt;p&gt;Also no safety net.&lt;/p&gt;

&lt;p&gt;If you lose your private key, that’s it.&lt;/p&gt;

&lt;p&gt;Game over.&lt;/p&gt;

&lt;p&gt;That sounds scary (and it kind of is), but also:&lt;/p&gt;

&lt;p&gt;No one can randomly ban you or lock you out.&lt;/p&gt;

&lt;p&gt;That’s a big shift.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Is More Powerful Than It Looks
&lt;/h2&gt;

&lt;p&gt;At first I thought:&lt;/p&gt;

&lt;p&gt;“Cool, so it’s just login but more annoying.”&lt;/p&gt;

&lt;p&gt;But it’s not just login.&lt;/p&gt;

&lt;p&gt;This identity is used for everything:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;holding tokens
&lt;/li&gt;
&lt;li&gt;interacting with programs
&lt;/li&gt;
&lt;li&gt;signing transactions
&lt;/li&gt;
&lt;li&gt;voting in governance
&lt;/li&gt;
&lt;li&gt;basically proving “this action is mine”
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the crazy part:&lt;/p&gt;

&lt;p&gt;It works across every app.&lt;/p&gt;

&lt;p&gt;No separate accounts.&lt;br&gt;
No repeated signups.&lt;/p&gt;

&lt;p&gt;It’s like if your SSH key worked on every server on the internet by default.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Mental Model I’m Keeping
&lt;/h2&gt;

&lt;p&gt;This is what I’ve settled on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web2 → accounts controlled by companies
&lt;/li&gt;
&lt;li&gt;Solana → keys controlled by you
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Or even shorter:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Web2 = “they manage you”&lt;br&gt;&lt;br&gt;
Web3 = “you manage your keys”  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That one line helped everything stick.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thought (From Someone Still Learning)
&lt;/h2&gt;

&lt;p&gt;I’m only a few days into this, but this was one of those moments where things suddenly felt simple.&lt;/p&gt;

&lt;p&gt;Not easy.&lt;/p&gt;

&lt;p&gt;But simple.&lt;/p&gt;

&lt;p&gt;The hardest part wasn’t the tech.&lt;/p&gt;

&lt;p&gt;It was letting go of the idea that: someone else is managing identity for me  &lt;/p&gt;

&lt;p&gt;On Solana, that responsibility is yours.&lt;/p&gt;

&lt;p&gt;And that’s kind of the whole point.&lt;/p&gt;




&lt;h1&gt;
  
  
  100DaysOfSolana
&lt;/h1&gt;

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