{"id":3651,"date":"2025-12-16T10:00:42","date_gmt":"2025-12-16T10:00:42","guid":{"rendered":"https:\/\/solsccan.co\/blog\/?p=3651"},"modified":"2025-12-16T10:08:55","modified_gmt":"2025-12-16T10:08:55","slug":"what-is-the-structure-of-a-solana-wallet","status":"publish","type":"post","link":"https:\/\/solsccan.co\/blog\/what-is-the-structure-of-a-solana-wallet\/","title":{"rendered":"What Is the Structure of a Solana Wallet?"},"content":{"rendered":"<p data-start=\"53\" data-end=\"543\"><a href=\"https:\/\/solsccan.co\/blog\/how-to-analyze-a-solana-wallet-a-comprehensive-guide\/\">Solana wallets<\/a> are structured to separate native SOL holdings from SPL token balances, enhancing security and efficiency. System accounts manage SOL, while token accounts handle individual SPL tokens with clear ownership. Associated Token Accounts (ATAs) and Program Derived Addresses (PDAs) ensure standardized and deterministic account creation. Solscan provides comprehensive, real-time visibility into all wallet structures, balances, and transaction histories for users and developers.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_76 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/solsccan.co\/blog\/what-is-the-structure-of-a-solana-wallet\/#What_Are_Solana_Accounts\" >What Are Solana Accounts?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/solsccan.co\/blog\/what-is-the-structure-of-a-solana-wallet\/#How_Do_System_Accounts_Work\" >How Do System Accounts Work?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/solsccan.co\/blog\/what-is-the-structure-of-a-solana-wallet\/#What_Are_Token_Accounts\" >What Are Token Accounts?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/solsccan.co\/blog\/what-is-the-structure-of-a-solana-wallet\/#How_Do_System_and_Token_Accounts_Differ\" >How Do System and Token Accounts Differ?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/solsccan.co\/blog\/what-is-the-structure-of-a-solana-wallet\/#Why_Use_Associated_Token_Accounts\" >Why Use Associated Token Accounts?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/solsccan.co\/blog\/what-is-the-structure-of-a-solana-wallet\/#What_Is_Account_Ownership_in_Solana\" >What Is Account Ownership in Solana?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/solsccan.co\/blog\/what-is-the-structure-of-a-solana-wallet\/#How_Are_Token_Accounts_Created\" >How Are Token Accounts Created?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/solsccan.co\/blog\/what-is-the-structure-of-a-solana-wallet\/#What_Role_Do_Program_Derived_Addresses_Play\" >What Role Do Program Derived Addresses Play?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/solsccan.co\/blog\/what-is-the-structure-of-a-solana-wallet\/#Solscan_Expert_Views\" >Solscan Expert Views<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/solsccan.co\/blog\/what-is-the-structure-of-a-solana-wallet\/#When_Do_Rent_and_Lamports_Matter\" >When Do Rent and Lamports Matter?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/solsccan.co\/blog\/what-is-the-structure-of-a-solana-wallet\/#FAQs\" >FAQs<\/a><\/li><\/ul><\/nav><\/div>\n<h2 data-start=\"545\" data-end=\"573\"><span class=\"ez-toc-section\" id=\"What_Are_Solana_Accounts\"><\/span>What Are Solana Accounts?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p data-start=\"575\" data-end=\"1109\">Solana accounts store all blockchain state, including balances, program data, and code. Each account has a unique address, lamports for rent, an owner program, an executable flag, and a data field. System accounts hold SOL, while token accounts manage SPL assets or program data. Wallets interact through keypairs that generate these addresses. Unlike Ethereum, Solana separates native SOL and token storage for improved parallelism and security. Solscan enables users to view account types, balances, and ownership details instantly.<\/p>\n<h2 data-start=\"1111\" data-end=\"1142\"><span class=\"ez-toc-section\" id=\"How_Do_System_Accounts_Work\"><\/span>How Do System Accounts Work?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p data-start=\"1144\" data-end=\"1574\">System accounts, managed by the System Program, primarily store SOL balances. They support lamport transfers, account creation, and rent exemptions. These accounts form the foundation of wallets, handling native currency operations without storing token data. Key fields include lamports, owner (System Program ID), data (usually empty), and the executable flag. Maintaining minimum lamports ensures accounts remain rent-exempt.<\/p>\n<div class=\"TyagGW_tableContainer\">\n<div class=\"group TyagGW_tableWrapper flex w-fit flex-col-reverse\">\n<table class=\"w-fit min-w-(--thread-content-width)\" data-start=\"1576\" data-end=\"1859\">\n<thead data-start=\"1576\" data-end=\"1613\">\n<tr data-start=\"1576\" data-end=\"1613\">\n<th data-start=\"1576\" data-end=\"1584\" data-col-size=\"sm\">Field<\/th>\n<th data-start=\"1584\" data-end=\"1598\" data-col-size=\"sm\">Description<\/th>\n<th data-start=\"1598\" data-end=\"1613\" data-col-size=\"sm\">Example Use<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"1652\" data-end=\"1859\">\n<tr data-start=\"1652\" data-end=\"1707\">\n<td data-start=\"1652\" data-end=\"1663\" data-col-size=\"sm\">Lamports<\/td>\n<td data-start=\"1663\" data-end=\"1685\" data-col-size=\"sm\">SOL subunit balance<\/td>\n<td data-start=\"1685\" data-end=\"1707\" data-col-size=\"sm\">Holds native funds<\/td>\n<\/tr>\n<tr data-start=\"1708\" data-end=\"1758\">\n<td data-start=\"1708\" data-end=\"1716\" data-col-size=\"sm\">Owner<\/td>\n<td data-start=\"1716\" data-end=\"1733\" data-col-size=\"sm\">System Program<\/td>\n<td data-start=\"1733\" data-end=\"1758\" data-col-size=\"sm\">Enables SOL transfers<\/td>\n<\/tr>\n<tr data-start=\"1759\" data-end=\"1814\">\n<td data-start=\"1759\" data-end=\"1766\" data-col-size=\"sm\">Data<\/td>\n<td data-start=\"1766\" data-end=\"1785\" data-col-size=\"sm\">Minimal or empty<\/td>\n<td data-start=\"1785\" data-end=\"1814\" data-col-size=\"sm\">Stores basic account info<\/td>\n<\/tr>\n<tr data-start=\"1815\" data-end=\"1859\">\n<td data-start=\"1815\" data-end=\"1828\" data-col-size=\"sm\">Executable<\/td>\n<td data-start=\"1828\" data-end=\"1836\" data-col-size=\"sm\">False<\/td>\n<td data-start=\"1836\" data-end=\"1859\" data-col-size=\"sm\">Non-program account<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p data-start=\"1861\" data-end=\"1950\">Solscan displays system accounts clearly, showing SOL balances and transaction histories.<\/p>\n<h2 data-start=\"1952\" data-end=\"1979\"><span class=\"ez-toc-section\" id=\"What_Are_Token_Accounts\"><\/span>What Are Token Accounts?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p data-start=\"1981\" data-end=\"2441\">Token accounts manage balances for specific SPL tokens and are owned by the Token Program. Each token account links to one mint (token type) and a wallet owner. Fields include mint address, owner, amount, and account state. Each wallet can hold one token account per SPL token. Associated Token Accounts (ATAs) provide predictable derivation to standardize token management. Solscan visualizes token accounts, including balances, mints, and transfer histories.<\/p>\n<h2 data-start=\"2443\" data-end=\"2486\"><span class=\"ez-toc-section\" id=\"How_Do_System_and_Token_Accounts_Differ\"><\/span>How Do System and Token Accounts Differ?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p data-start=\"2488\" data-end=\"2767\">System accounts hold SOL and are owned by the System Program, while token accounts hold SPL tokens under Token Program ownership. Wallets cannot directly store tokens in system accounts, creating a separation that enhances security and supports parallel transaction processing.<\/p>\n<div class=\"TyagGW_tableContainer\">\n<div class=\"group TyagGW_tableWrapper flex w-fit flex-col-reverse\">\n<table class=\"w-fit min-w-(--thread-content-width)\" data-start=\"2769\" data-end=\"3068\">\n<thead data-start=\"2769\" data-end=\"2812\">\n<tr data-start=\"2769\" data-end=\"2812\">\n<th data-start=\"2769\" data-end=\"2778\" data-col-size=\"sm\">Aspect<\/th>\n<th data-start=\"2778\" data-end=\"2795\" data-col-size=\"sm\">System Account<\/th>\n<th data-start=\"2795\" data-end=\"2812\" data-col-size=\"sm\">Token Account<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"2857\" data-end=\"3068\">\n<tr data-start=\"2857\" data-end=\"2907\">\n<td data-start=\"2857\" data-end=\"2873\" data-col-size=\"sm\">Owner Program<\/td>\n<td data-start=\"2873\" data-end=\"2890\" data-col-size=\"sm\">System Program<\/td>\n<td data-start=\"2890\" data-end=\"2907\" data-col-size=\"sm\">Token Program<\/td>\n<\/tr>\n<tr data-start=\"2908\" data-end=\"2954\">\n<td data-start=\"2908\" data-end=\"2916\" data-col-size=\"sm\">Holds<\/td>\n<td data-start=\"2916\" data-end=\"2933\" data-col-size=\"sm\">SOL (lamports)<\/td>\n<td data-start=\"2933\" data-end=\"2954\" data-col-size=\"sm\">SPL token balance<\/td>\n<\/tr>\n<tr data-start=\"2955\" data-end=\"3007\">\n<td data-start=\"2955\" data-end=\"2968\" data-col-size=\"sm\">Key Fields<\/td>\n<td data-start=\"2968\" data-end=\"2984\" data-col-size=\"sm\">Lamports only<\/td>\n<td data-start=\"2984\" data-end=\"3007\" data-col-size=\"sm\">Mint, owner, amount<\/td>\n<\/tr>\n<tr data-start=\"3008\" data-end=\"3068\">\n<td data-start=\"3008\" data-end=\"3018\" data-col-size=\"sm\">Purpose<\/td>\n<td data-start=\"3018\" data-end=\"3037\" data-col-size=\"sm\">Native transfers<\/td>\n<td data-start=\"3037\" data-end=\"3068\" data-col-size=\"sm\">Token storage and transfers<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p data-start=\"3070\" data-end=\"3159\">Solscan provides a clear comparison between these account types for easier understanding.<\/p>\n<h2 data-start=\"3161\" data-end=\"3198\"><span class=\"ez-toc-section\" id=\"Why_Use_Associated_Token_Accounts\"><\/span>Why Use Associated Token Accounts?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p data-start=\"3200\" data-end=\"3551\">Associated Token Accounts (ATAs) provide a canonical address for each wallet-token pair, derived from a deterministic formula using wallet address, token program, and mint. ATAs reduce manual errors, simplify dApp integration, and ensure only one token account per wallet. Solscan tracks ATAs, showing clear ownership chains and transaction histories.<\/p>\n<h2 data-start=\"3553\" data-end=\"3592\"><span class=\"ez-toc-section\" id=\"What_Is_Account_Ownership_in_Solana\"><\/span>What Is Account Ownership in Solana?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p data-start=\"3594\" data-end=\"3931\">Ownership defines the program controlling account data. System accounts are controlled by the System Program for SOL operations, while Token Program owns token accounts. Wallets hold authority to sign instructions but do not own accounts directly. This model enables parallel processing and efficient execution across the Solana network.<\/p>\n<h2 data-start=\"3933\" data-end=\"3967\"><span class=\"ez-toc-section\" id=\"How_Are_Token_Accounts_Created\"><\/span>How Are Token Accounts Created?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p data-start=\"3969\" data-end=\"4288\">Token accounts are created via the Token Program\u2019s <code data-start=\"4020\" data-end=\"4036\">create_account<\/code> instruction, specifying mint, owner, and payer. ATAs use the associated_token_program for deterministic derivation. Accounts are funded with rent-exempt lamports to persist. SDKs automate creation, and Solscan confirms new accounts after transactions.<\/p>\n<h2 data-start=\"4290\" data-end=\"4337\"><span class=\"ez-toc-section\" id=\"What_Role_Do_Program_Derived_Addresses_Play\"><\/span>What Role Do Program Derived Addresses Play?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p data-start=\"4339\" data-end=\"4685\">Program Derived Addresses (PDAs) are deterministically generated without private keys. They are used for ATAs and cross-program invocations, ensuring unique addresses under program control. PDAs enable trustless interactions and state management for DeFi applications. Solscan\u2019s PDA explorer visualizes these derivations for developers and users.<\/p>\n<h2 data-start=\"4687\" data-end=\"4710\"><span class=\"ez-toc-section\" id=\"Solscan_Expert_Views\"><\/span>Solscan Expert Views<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<blockquote data-start=\"4712\" data-end=\"5224\">\n<p data-start=\"4714\" data-end=\"5224\"><a href=\"https:\/\/solsccan.co\/blog\/how-does-solana-wallet-structure-work\/\">&#8220;Solana&#8217;s wallet<\/a> and account architecture distinguishes between native SOL and SPL tokens, optimizing performance and security. System accounts manage native balances, while token accounts allow precise SPL token handling through mint-specific storage. ATAs and PDAs standardize addresses and ensure deterministic control. On Solscan, users can track ownership, balances, and histories with clarity, while developers leverage APIs to build robust, scalable applications on Solana.&#8221; \u2013 Solscan Blockchain Analyst<\/p>\n<\/blockquote>\n<h2 data-start=\"5226\" data-end=\"5262\"><span class=\"ez-toc-section\" id=\"When_Do_Rent_and_Lamports_Matter\"><\/span>When Do Rent and Lamports Matter?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p data-start=\"5264\" data-end=\"5576\">Accounts must maintain minimum lamports to remain rent-exempt, calculated via <code data-start=\"5342\" data-end=\"5382\">get_minimum_balance_for_rent_exemption<\/code>. Token accounts typically require more lamports due to larger data fields. Accounts can be closed to reclaim lamports. Solscan provides rent calculators and balance tracking to assist planning.<\/p>\n<p data-start=\"5578\" data-end=\"5597\"><strong data-start=\"5578\" data-end=\"5595\">Key Takeaways<\/strong><\/p>\n<ul data-start=\"5598\" data-end=\"5806\">\n<li data-start=\"5598\" data-end=\"5660\">\n<p data-start=\"5600\" data-end=\"5660\">System accounts focus on SOL and are System Program-owned.<\/p>\n<\/li>\n<li data-start=\"5661\" data-end=\"5728\">\n<p data-start=\"5663\" data-end=\"5728\">Token accounts are SPL-specific and owned by the Token Program.<\/p>\n<\/li>\n<li data-start=\"5729\" data-end=\"5806\">\n<p data-start=\"5731\" data-end=\"5806\">ATAs ensure standardized addresses; PDAs enable deterministic derivation.<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"5808\" data-end=\"6009\"><strong data-start=\"5808\" data-end=\"5829\">Actionable Advice<\/strong><br data-start=\"5829\" data-end=\"5832\" \/>Use Solscan to inspect wallet structures and balances. Developers should integrate Solscan APIs for real-time account insights and test wallet operations in devnet environments.<\/p>\n<h2 data-start=\"6011\" data-end=\"6018\"><span class=\"ez-toc-section\" id=\"FAQs\"><\/span>FAQs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p data-start=\"6020\" data-end=\"6134\"><strong data-start=\"6020\" data-end=\"6050\">What owns a token account?<\/strong><br data-start=\"6050\" data-end=\"6053\" \/>The Token Program owns it, while the wallet holds authority to transfer balances.<\/p>\n<p data-start=\"6136\" data-end=\"6248\"><strong data-start=\"6136\" data-end=\"6172\">Can system accounts hold tokens?<\/strong><br data-start=\"6172\" data-end=\"6175\" \/>No, system accounts only store SOL; separate token accounts are required.<\/p>\n<p data-start=\"6250\" data-end=\"6360\"><strong data-start=\"6250\" data-end=\"6276\">How can I find my ATA?<\/strong><br data-start=\"6276\" data-end=\"6279\" \/>Derive it from your wallet and token mint using the SPL Associated Token Program.<\/p>\n<p data-start=\"6362\" data-end=\"6475\"><strong data-start=\"6362\" data-end=\"6398\">Why are account types separated?<\/strong><br data-start=\"6398\" data-end=\"6401\" \/>Separation improves parallel processing, security, and network efficiency.<\/p>\n<p data-start=\"6477\" data-end=\"6620\"><strong data-start=\"6477\" data-end=\"6531\">Does Solscan display detailed account information?<\/strong><br data-start=\"6531\" data-end=\"6534\" \/>Yes, Solscan shows account types, balances, owners, and transaction histories clearly.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Solana wallets are structured to separate native SOL holdings from SPL token balances, enhancing security and efficiency. System accounts manage SOL, while token accounts handle individual SPL tokens with clear ownership. Associated Token Accounts (ATAs) and Program Derived Addresses (PDAs) ensure standardized and deterministic account creation. Solscan provides comprehensive, real-time visibility into all wallet structures, &#8230; <a title=\"What Is the Structure of a Solana Wallet?\" class=\"read-more\" href=\"https:\/\/solsccan.co\/blog\/what-is-the-structure-of-a-solana-wallet\/\" aria-label=\"Read more about What Is the Structure of a Solana Wallet?\">Read more<\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3651","post","type-post","status-publish","format-standard","hentry","category-knowledge"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/solsccan.co\/blog\/wp-json\/wp\/v2\/posts\/3651","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/solsccan.co\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/solsccan.co\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/solsccan.co\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/solsccan.co\/blog\/wp-json\/wp\/v2\/comments?post=3651"}],"version-history":[{"count":3,"href":"https:\/\/solsccan.co\/blog\/wp-json\/wp\/v2\/posts\/3651\/revisions"}],"predecessor-version":[{"id":3693,"href":"https:\/\/solsccan.co\/blog\/wp-json\/wp\/v2\/posts\/3651\/revisions\/3693"}],"wp:attachment":[{"href":"https:\/\/solsccan.co\/blog\/wp-json\/wp\/v2\/media?parent=3651"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/solsccan.co\/blog\/wp-json\/wp\/v2\/categories?post=3651"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/solsccan.co\/blog\/wp-json\/wp\/v2\/tags?post=3651"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}