# Solana Documentation > Solana is the high-performance blockchain designed for mass adoption. This documentation provides comprehensive guides, references, and tutorials for developers looking to build scalable blockchain applications on Solana. The Solana documentation is organized into several key sections covering core concepts, client-side development, program development, and validator operations. This LLMs.txt file provides structured access to the most important documentation resources. ## Cookbook - [Solana Cookbook](https://solana.com/cookbook/?utm_source=llms&utm_medium=ai&utm_campaign=txt): The Solana Cookbook is a collection of code snippets, useful examples, and references for building on Solana. ## Cookbook - Accounts - [How to Calculate Account Creation Cost](https://solana.com/cookbook/accounts/calculate-rent?utm_source=llms&utm_medium=ai&utm_campaign=txt): Every time you create an account, that creation costs an amount of SOL. Learn how to calculate how much an account costs at creation. - [How to Close an Account](https://solana.com/cookbook/accounts/close-account?utm_source=llms&utm_medium=ai&utm_campaign=txt): When an account is no longer needed, you can close the account to reclaim the rent. Learn how to close accounts efficiently on Solana. - [How to Create a PDA's Account](https://solana.com/cookbook/accounts/create-pda-account?utm_source=llms&utm_medium=ai&utm_campaign=txt): Program Derived Addresses, also known as PDAs, enable developers to extend their program - [How to Create an Account](https://solana.com/cookbook/accounts/create-account?utm_source=llms&utm_medium=ai&utm_campaign=txt): Accounts are the basic building blocks of anything on Solana. Learn how to create accounts on the Solana blockchain. - [How to Get Account Balance](https://solana.com/cookbook/accounts/get-account-balance?utm_source=llms&utm_medium=ai&utm_campaign=txt): Every account on Solana has a balance of SOL stored. Learn how to retrieve that account balance on Solana. - [How to Sign with a PDA's Account](https://solana.com/cookbook/accounts/sign-with-pda?utm_source=llms&utm_medium=ai&utm_campaign=txt): A main feature of accounts at Program Derived Addresses is the ability for programs to sign using those accounts. Learn how to sign with PDA accounts on Solana. ## Cookbook - Development - [Connecting to a Solana Environment](https://solana.com/cookbook/development/connect-environment?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to connect to a Solana environment. - [Getting Test SOL](https://solana.com/cookbook/development/test-sol?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to get test SOL for development purposes by requesting an airdrop in your source code. - [How to Start a Local Validator](https://solana.com/cookbook/development/start-local-validator?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to start a local solana validator. - [Load a local json file keypair](https://solana.com/cookbook/development/load-keypair-from-file?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to load a keypair from file. - [Subscribing to Events](https://solana.com/cookbook/development/subscribing-events?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to subscribe to events in the Solana network. - [Using Mainnet Accounts and Programs](https://solana.com/cookbook/development/using-mainnet-accounts-programs?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to use the Mainnet accounts and programs in your local development environment. ## Cookbook - Programs - [How to Transfer SOL in a Solana Program](https://solana.com/cookbook/programs/transfer-sol?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to transfer SOL in a Solana program. - [How to change account size](https://solana.com/cookbook/programs/change-account-size?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to change the size of an account in a Solana program. - [How to create a Program Derived Address](https://solana.com/cookbook/programs/create-pda?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to create a Program Derived Address (PDA) in a Solana program. - [How to do Cross Program Invocation](https://solana.com/cookbook/programs/cross-program-invocation?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to do Cross Program Invocation in Solana programs. - [How to get clock in a program](https://solana.com/cookbook/programs/clock?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to get the clock in a Solana program. - [How to read accounts in a program](https://solana.com/cookbook/programs/read-accounts?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to read accounts in a Solana program. - [How to verify accounts in a Solana program](https://solana.com/cookbook/programs/verify-accounts?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to verify accounts in a Solana program. - [Reading Multiple Instructions](https://solana.com/cookbook/programs/read-multiple-instructions?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to read multiple instructions from a transaction in a Solana program. ## Cookbook - Tokens - [How to Burn Tokens](https://solana.com/cookbook/tokens/burn-tokens?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to burn Tokens on Solana - [How to Close Token Accounts](https://solana.com/cookbook/tokens/close-token-accounts?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to close token accounts on Solana, including cases such as Wrapped SOL and empty accounts. - [How to Create a Token](https://solana.com/cookbook/tokens/create-mint-account?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to create tokens on Solana. - [How to Create a Token Account](https://solana.com/cookbook/tokens/create-token-account?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn to create Solana token accounts, which hold tokens for users. - [How to Delegate Token Accounts](https://solana.com/cookbook/tokens/approve-token-delegate?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to delegate authority of tokens to someone else - [How to Fetch the NFT Metadata](https://solana.com/cookbook/tokens/fetch-nft-metadata?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to fetch the metadata of a non-fungible token (NFT) on Solana. - [How to Get All Token Accounts by Authority](https://solana.com/cookbook/tokens/get-all-token-accounts?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to retrieve Solana token accounts by owner, including all accounts or filtered by mint. - [How to Get a Token Account](https://solana.com/cookbook/tokens/get-token-account?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to retrieve Solana token account details, including owner, mint, and balance - [How to Get a Token Mint](https://solana.com/cookbook/tokens/get-token-mint?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to retrieve Solana token mint information, including supply, authority, and decimals. - [How to Mint Tokens](https://solana.com/cookbook/tokens/mint-tokens?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to mint tokens on Solana, increasing supply and transferring new tokens to a specific account. - [How to Revoke a Token Delegate](https://solana.com/cookbook/tokens/revoke-token-delegate?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to revoke a token delegate on Solana, resetting delegate permissions and amounts. - [How to Send Tokens](https://solana.com/cookbook/tokens/transfer-tokens?utm_source=llms&utm_medium=ai&utm_campaign=txt): Using tokens is common within any application on Solana. Learn how to send tokens to on Solana and create the Associated Token Account (ATA). - [How to Set Authority on Token Accounts or Mints](https://solana.com/cookbook/tokens/set-update-token-authority?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to set authorities on Solana token accounts and mints. Crucial for controlling who can modify or manage tokens. - [How to Use Wrapped SOL](https://solana.com/cookbook/tokens/manage-wrapped-sol?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to use wrapped SOL on Solana, including creating token accounts and adding balance through SOL transfers or token transfers. - [How to create an NFT](https://solana.com/cookbook/tokens/create-nft?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to create an NFT on Solana, using Arweave and Metaplex. - [How to get a token account's balance](https://solana.com/cookbook/tokens/get-token-balance?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to quickly retrieve a Solana token account - [How to get all NFTs from a wallet?](https://solana.com/cookbook/tokens/fetch-all-nfts?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to fetch all non-fungible tokens (NFTs) from a wallet on Solana. - [How to get the owner of an NFT](https://solana.com/cookbook/tokens/get-nft-owner?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to get the owner of a non-fungible token (NFT) on Solana. ## Cookbook - Transactions - [How to Add Priority Fees to a Transaction](https://solana.com/cookbook/transactions/add-priority-fees?utm_source=llms&utm_medium=ai&utm_campaign=txt): Transactions executed in order they are prioritized on Solana. Learn how to increase your transaction priority with priority fees on Solana. - [How to Add a Memo to a Transaction](https://solana.com/cookbook/transactions/add-memo?utm_source=llms&utm_medium=ai&utm_campaign=txt): Transactions come with metadata information about what was transacted. Learn how to add a memo to your transactions on Solana. - [How to Calculate Transaction Cost](https://solana.com/cookbook/transactions/calculate-cost?utm_source=llms&utm_medium=ai&utm_campaign=txt): Every transaction costs compute units and a fee in lamports to execute on Solana. Learn how to calculate the cost of a transaction on Solana. - [How to Optimize Compute Requested](https://solana.com/cookbook/transactions/optimize-compute?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [How to Send SOL](https://solana.com/cookbook/transactions/send-sol?utm_source=llms&utm_medium=ai&utm_campaign=txt): The most common action on Solana is sending SOL. Learn how to send SOL on Solana. - [Offline Transactions](https://solana.com/cookbook/transactions/offline-transactions?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to create and sign transactions offline. ## Cookbook - Wallets - [How to Connect a Wallet with React](https://solana.com/cookbook/wallets/connect-wallet-react?utm_source=llms&utm_medium=ai&utm_campaign=txt): Every application on Solana requires a connection with a user - [How to Create a Keypair](https://solana.com/cookbook/wallets/create-keypair?utm_source=llms&utm_medium=ai&utm_campaign=txt): Every transaction requires a signature from a keypair on Solana. Learn how to create Keypairs on Solana. - [How to Generate Mnemonics for Keypairs](https://solana.com/cookbook/wallets/generate-mnemonic?utm_source=llms&utm_medium=ai&utm_campaign=txt): Mnemonics make it easy for users to store their keypair - [How to Generate a Vanity Address](https://solana.com/cookbook/wallets/generate-vanity-address?utm_source=llms&utm_medium=ai&utm_campaign=txt): Creating custom addresses on Solana is a fun way to make your public key unique. Learn how to create vanity addresses on Solana. - [How to Restore a Keypair from a Mnemonic](https://solana.com/cookbook/wallets/restore-from-mnemonic?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to restore keypairs from a mnemonic on Solana - [How to Restore a Keypair or Signer](https://solana.com/cookbook/wallets/restore-keypair?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to restore keypairs from a secret key on Solana. - [How to Sign and Verify a Message](https://solana.com/cookbook/wallets/sign-message?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to sign messages on Solana. - [How to Validate a Public Key](https://solana.com/cookbook/wallets/check-publickey?utm_source=llms&utm_medium=ai&utm_campaign=txt): Public keys on Solana can be validated with a small amount of code. Learn how to validate public keys on Solana. - [How to Verify a Keypair](https://solana.com/cookbook/wallets/verify-keypair?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to verify keypairs on Solana match a given public address. ## Courses - Connecting-to-offchain-data - [Connecting to offchain data](https://solana.com/developers/courses/connecting-to-offchain-data/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Connect to offchain data from inside your Anchor programs. - [Oracles and Oracle Networks](https://solana.com/developers/courses/connecting-to-offchain-data/oracles?utm_source=llms&utm_medium=ai&utm_campaign=txt): Access real-world data inside a Solana program. - [Verifiable Randomness Functions](https://solana.com/developers/courses/connecting-to-offchain-data/verifiable-randomness-functions?utm_source=llms&utm_medium=ai&utm_campaign=txt): Use proper cryptographic randomness in your onchain programs. ## Courses - Intro-to-solana - [Course Guide](https://solana.com/developers/courses/intro-to-solana/getting-started?utm_source=llms&utm_medium=ai&utm_campaign=txt): Understand what web3, blockchains, and Solana are. - [Create Transactions on the Solana Network](https://solana.com/developers/courses/intro-to-solana/intro-to-writing-data?utm_source=llms&utm_medium=ai&utm_campaign=txt): Make your first transactions on DevNet, using the System and memo programs! - [Cryptography and the Solana Network](https://solana.com/developers/courses/intro-to-solana/intro-to-cryptography?utm_source=llms&utm_medium=ai&utm_campaign=txt): Understand asymmetric cryptography and how Solana uses it. - [Interact With Wallets](https://solana.com/developers/courses/intro-to-solana/interact-with-wallets?utm_source=llms&utm_medium=ai&utm_campaign=txt): Connect with installed browser wallets from your React apps. - [Introduction to cryptography and Solana clients](https://solana.com/developers/courses/intro-to-solana/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn the basics of how to interact with the Solana blockchain. - [Read Data From The Solana Network](https://solana.com/developers/courses/intro-to-solana/intro-to-reading-data?utm_source=llms&utm_medium=ai&utm_campaign=txt): Connect to Solana DevNet from TypeScript and read data from the blockchain! - [Using custom onchain programs](https://solana.com/developers/courses/intro-to-solana/intro-to-custom-onchain-programs?utm_source=llms&utm_medium=ai&utm_campaign=txt): Make instructions for arbitrary programs using the ## Courses - Mobile - [Building Solana Mobile dApps with Expo](https://solana.com/developers/courses/mobile/solana-mobile-dapps-with-expo?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to use Solana in your Expo apps. - [Exploring Mobile Wallet Adapter](https://solana.com/developers/courses/mobile/mwa-deep-dive?utm_source=llms&utm_medium=ai&utm_campaign=txt): Initiate transactions on mobile wallets in your native mobile apps. - [Introduction to Solana Mobile](https://solana.com/developers/courses/mobile/intro-to-solana-mobile?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to build native mobile apps using blockchain functionality - [Solana Mobile Development](https://solana.com/developers/courses/mobile/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Use Solana features from native mobile apps for both Android and iOS. ## Courses - Native-onchain-development - [Create a Basic Program, Part 1 - Handle Instruction Data](https://solana.com/developers/courses/native-onchain-development/deserialize-instruction-data?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how native programs distinguish instructions for different functions. - [Create a Basic Program, Part 2 - State Management](https://solana.com/developers/courses/native-onchain-development/program-state-management?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how programs store data using Solana - [Create a Basic Program, Part 3 - Basic Security and Validation](https://solana.com/developers/courses/native-onchain-development/program-security?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to secure your Solana program with ownership, signer, and account validation checks. - [Cross Program Invocations](https://solana.com/developers/courses/native-onchain-development/cross-program-invocations?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to invoke functions in other Solana programs. - [Deserialize Program Data](https://solana.com/developers/courses/native-onchain-development/deserialize-custom-data-frontend?utm_source=llms&utm_medium=ai&utm_campaign=txt): Deserialize instructions in JS/TS clients to send to your native program. - [Hello World](https://solana.com/developers/courses/native-onchain-development/hello-world-program?utm_source=llms&utm_medium=ai&utm_campaign=txt): Create an onchain program for Solana using native Rust, without Anchor. - [Native onchain program development](https://solana.com/developers/courses/native-onchain-development/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to build Solana programs without using Anchor. - [Page, Order, and Filter Program Data](https://solana.com/developers/courses/native-onchain-development/paging-ordering-filtering-data-frontend?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to efficiently query account data from Solana. - [Program Derived Addresses (PDAs)](https://solana.com/developers/courses/native-onchain-development/program-derived-addresses?utm_source=llms&utm_medium=ai&utm_campaign=txt): Get a deeper understanding of PDAs. - [Serialize Custom Instruction Data for Native Program Development](https://solana.com/developers/courses/native-onchain-development/serialize-instruction-data-frontend?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to deserialize data fetched from Solana accounts. ## Courses - Offline-transactions - [Durable Nonces](https://solana.com/developers/courses/offline-transactions/durable-nonces?utm_source=llms&utm_medium=ai&utm_campaign=txt): Use durable nonces to sign transactions ahead of time. - [Offline transactions](https://solana.com/developers/courses/offline-transactions/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Use durable nonces to sign transactions ahead of time. ## Courses - Onchain-development - [Anchor CPIs and Errors](https://solana.com/developers/courses/onchain-development/anchor-cpi?utm_source=llms&utm_medium=ai&utm_campaign=txt): Invoke other Solana programs from your Anchor app. - [Anchor PDAs and Accounts](https://solana.com/developers/courses/onchain-development/anchor-pdas?utm_source=llms&utm_medium=ai&utm_campaign=txt): Store arbitrary data on Solana, using PDAs, an inbuilt key-value store. - [Intro to Anchor development](https://solana.com/developers/courses/onchain-development/intro-to-anchor?utm_source=llms&utm_medium=ai&utm_campaign=txt): Create your first Solana onchain program in Anchor. - [Intro to Solana Onchain Development](https://solana.com/developers/courses/onchain-development/intro-to-onchain?utm_source=llms&utm_medium=ai&utm_campaign=txt): Discover how onchain programs ( often called - [Intro to client-side Anchor development](https://solana.com/developers/courses/onchain-development/intro-to-anchor-frontend?utm_source=llms&utm_medium=ai&utm_campaign=txt): Use Anchor - [Local Program Development](https://solana.com/developers/courses/onchain-development/local-setup?utm_source=llms&utm_medium=ai&utm_campaign=txt): Setup a local development environment for building onchain programs. - [Onchain program development](https://solana.com/developers/courses/onchain-development/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Build onchain programs (sometimes called 'smart contracts') with Anchor. ## Courses - Program-optimization - [Program Architecture](https://solana.com/developers/courses/program-optimization/program-architecture?utm_source=llms&utm_medium=ai&utm_campaign=txt): Design your Solana programs efficiently. - [Program Configuration](https://solana.com/developers/courses/program-optimization/program-configuration?utm_source=llms&utm_medium=ai&utm_campaign=txt): Create distinct environments, feature flags and admin-only instructions. - [Program Optimization](https://solana.com/developers/courses/program-optimization/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to efficiently design and optimize your programs. - [Rust Procedural Macros](https://solana.com/developers/courses/program-optimization/rust-macros?utm_source=llms&utm_medium=ai&utm_campaign=txt): Use Rust macros to generate code at compile time. - [Versioned Transactions and Lookup Tables](https://solana.com/developers/courses/program-optimization/lookup-tables?utm_source=llms&utm_medium=ai&utm_campaign=txt): Use large amounts of accounts by using lookup tables. ## Courses - Program-security - [Account Data Matching](https://solana.com/developers/courses/program-security/account-data-matching?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to check your program - [Arbitrary CPI](https://solana.com/developers/courses/program-security/arbitrary-cpi?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to safely invoke Solana programs from other Solana programs. - [Bump Seed Canonicalization](https://solana.com/developers/courses/program-security/bump-seed-canonicalization?utm_source=llms&utm_medium=ai&utm_campaign=txt): Understand the need for consistent PDA calculation by storing and reusing the canonical bump. - [Closing Accounts and Revival Attacks](https://solana.com/developers/courses/program-security/closing-accounts?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to close program accounts safely and securely in Anchor and native Rust. - [Duplicate Mutable Accounts](https://solana.com/developers/courses/program-security/duplicate-mutable-accounts?utm_source=llms&utm_medium=ai&utm_campaign=txt): Understand vulnerabilities that can occur with instruction handlers that handle two mutable accounts, and how to mitigate them. - [How to Approach the Program Security Course](https://solana.com/developers/courses/program-security/security-intro?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to think intelligently about security for your onchain programs, whether developing in Anchor or Native Rust. - [Owner Checks](https://solana.com/developers/courses/program-security/owner-checks?utm_source=llms&utm_medium=ai&utm_campaign=txt): Understand the use of account owner checks when processing incoming instructions. - [PDA Sharing](https://solana.com/developers/courses/program-security/pda-sharing?utm_source=llms&utm_medium=ai&utm_campaign=txt): Understand the potential problems of reusing PDAs by using user and domain specific PDAs. - [Program Security](https://solana.com/developers/courses/program-security/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Understand common security pitfalls and how to build secure programs. - [Reinitialization Attacks](https://solana.com/developers/courses/program-security/reinitialization-attacks?utm_source=llms&utm_medium=ai&utm_campaign=txt): Understand the security risks of account reinitialized attacks being used to override data, and how to prevent them. - [Signer Authorization](https://solana.com/developers/courses/program-security/signer-auth?utm_source=llms&utm_medium=ai&utm_campaign=txt): Ensure instructions are only executed by authorized accounts by implementing signer checks. - [Type Cosplay](https://solana.com/developers/courses/program-security/type-cosplay?utm_source=llms&utm_medium=ai&utm_campaign=txt): Understand the risks of using incorrect account types in instructions and how to mitigate them with account type checks. ## Courses - Solana-pay - [Solana Pay](https://solana.com/developers/courses/solana-pay/solana-pay?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to create Solana Pay payment requests using links and QR codes. - [Solana Pay](https://solana.com/developers/courses/solana-pay/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Request payments and initiate transactions using links and QR codes. ## Courses - State-compression - [Compressed NFTs](https://solana.com/developers/courses/state-compression/compressed-nfts?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to mint, transfer and read large-scale NFT collections using Metaplex - [Generalized State Compression objectives](https://solana.com/developers/courses/state-compression/generalized-state-compression?utm_source=llms&utm_medium=ai&utm_campaign=txt): Understand how state compression - the technology behind compressed NFTs works - and learn how to apply it in your Solana programs. - [State Compression](https://solana.com/developers/courses/state-compression/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Use state compression for large NFT collections and other large-data cases. ## Courses - Token-extensions - [CPI Guard](https://solana.com/developers/courses/token-extensions/cpi-guard?utm_source=llms&utm_medium=ai&utm_campaign=txt): Create tokens that don - [Close Mint Extension](https://solana.com/developers/courses/token-extensions/close-mint?utm_source=llms&utm_medium=ai&utm_campaign=txt): Create a mint that can be closed once the tokens are burnt. - [Default Account State](https://solana.com/developers/courses/token-extensions/default-account-state?utm_source=llms&utm_medium=ai&utm_campaign=txt): Create token that requires interaction with a specific service to use. - [Group, Group Pointer, Member, Member Pointer](https://solana.com/developers/courses/token-extensions/group-member?utm_source=llms&utm_medium=ai&utm_campaign=txt): Make an NFT collection using token extensions. - [Immutable Owner](https://solana.com/developers/courses/token-extensions/immutable-owner?utm_source=llms&utm_medium=ai&utm_campaign=txt): Make a token that ensures the account storing the tokens cannot change owner. - [Interest Bearing Token](https://solana.com/developers/courses/token-extensions/interest-bearing-token?utm_source=llms&utm_medium=ai&utm_campaign=txt): Make a token that earns interest over time. - [Intro to Token Extensions](https://solana.com/developers/courses/token-extensions/intro-to-token-extensions-program?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn what token extensions are, and how to create tokens that use their features. - [Metadata and Metadata Pointer Extension](https://solana.com/developers/courses/token-extensions/token-extensions-metadata?utm_source=llms&utm_medium=ai&utm_campaign=txt): Include token metadata directly inside the token mint account. - [Non-Transferable Token](https://solana.com/developers/courses/token-extensions/non-transferable-token?utm_source=llms&utm_medium=ai&utm_campaign=txt): Create tokens that can - [Permanent Delegate](https://solana.com/developers/courses/token-extensions/permanent-delegate?utm_source=llms&utm_medium=ai&utm_campaign=txt): Create a token than can be permanently transferred or burned by a particular account. - [Required Memo](https://solana.com/developers/courses/token-extensions/required-memo?utm_source=llms&utm_medium=ai&utm_campaign=txt): Create a token that requires a short note on every transfer. - [Token Extensions](https://solana.com/developers/courses/token-extensions/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Create tokens with features like non-transferability, transfer hooks, and more. - [Transfer Fee Extension](https://solana.com/developers/courses/token-extensions/transfer-fee?utm_source=llms&utm_medium=ai&utm_campaign=txt): Create a token that allows a fee to be charged each time the token is traded. - [Transfer Hook](https://solana.com/developers/courses/token-extensions/transfer-hook?utm_source=llms&utm_medium=ai&utm_campaign=txt): Create a token that invokes a function in an onchain program whenever the token in transferred. - [Use Token Extensions from a Client](https://solana.com/developers/courses/token-extensions/token-extensions-in-the-client?utm_source=llms&utm_medium=ai&utm_campaign=txt): Use mints with Token Extensions program from TS in web and mobile apps. - [Use Token Extensions in onchain programs](https://solana.com/developers/courses/token-extensions/token-extensions-onchain?utm_source=llms&utm_medium=ai&utm_campaign=txt): Use token extensions in onchain programs. ## Courses - Tokens-and-nfts - [Create Solana NFTs With Metaplex](https://solana.com/developers/courses/tokens-and-nfts/nfts-with-metaplex?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to create NFTs in TypeScript with Metaplex Metadata program and Irys permanent storage service. - [Create Solana NFTs With Metaplex Core](https://solana.com/developers/courses/tokens-and-nfts/nfts-with-metaplex-core?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to create NFTs in TypeScript with Metaplex Core program and Irys permanent storage service. - [Create Tokens With The Token Program](https://solana.com/developers/courses/tokens-and-nfts/token-program?utm_source=llms&utm_medium=ai&utm_campaign=txt): Understand how tokens - both regular tokens and NFTs - are created, stored, and transferred on Solana. - [Token Burning and Delegation](https://solana.com/developers/courses/tokens-and-nfts/token-program-advanced?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to burn tokens, and approve/revoke token delegations on Solana. - [Tokens and NFTs on Solana](https://solana.com/developers/courses/tokens-and-nfts/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Create tokens and NFTs on Solana. ## Docs - [Solana Documentation](https://solana.com/docs/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Solana is the high-performance blockchain designed for mass adoption. Learn why Solana is the top choice for developers looking to build scalable blockchain applications. ## Docs - Clients - [Go SDK](https://solana.com/docs/clients/go?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to interact with Solana using the Go SDK (gagliardetto/solana-go). - [Java SDK](https://solana.com/docs/clients/java?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to interact with Solana using the Java SDK (sava-software/sava). - [Python SDK](https://solana.com/docs/clients/python?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to interact with Solana using the Python SDK (michaelhly/solana-py). - [Rust SDK](https://solana.com/docs/clients/rust?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to use Solana's Rust crates for development. - [Solana Gaming SDKs](https://solana.com/docs/clients/game-sdks?utm_source=llms&utm_medium=ai&utm_campaign=txt): A list of Solana Gaming SDKs to get you started creating your first Solana Game - [Typescript SDK](https://solana.com/docs/clients/javascript?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to interact with Solana using the JavaScript/TypeScript client library (@solana/web3.js). ## Docs - Core - [Core Concepts](https://solana.com/docs/core/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn essential Solana blockchain concepts including accounts, transactions, programs, program derived addresses, cross program invocations, and how tokens work on Solana. - [Cross Program Invocation](https://solana.com/docs/core/cpi?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn about Cross Program Invocation (CPI) on Solana - how programs can call instructions on other programs, handle PDA signers, and compose functionality across the Solana network. - [Program Derived Address](https://solana.com/docs/core/pda?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn about Program Derived Addresses (PDAs) on Solana - deterministic account addresses that enable secure program signing. Understand PDA derivation, canonical bumps, and how to create PDA accounts. - [Programs on Solana](https://solana.com/docs/core/programs?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn about Solana programs (smart contracts) and how to develop them using Rust or the Anchor framework. Understand program deployment, upgrades, and verification on the Solana network. - [Solana Account Model](https://solana.com/docs/core/accounts?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn about Solana's account model, including how accounts store data and programs, rent mechanics, account ownership, and the relationship between programs and data accounts. Understand the core concepts of Solana's key-value storage system. - [Tokens on Solana](https://solana.com/docs/core/tokens?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn about Solana tokens (SPL Tokens) including fungible and non-fungible tokens, Token Program, Token Extensions Program, mint accounts, token accounts, and practical examples for creating and managing tokens on Solana. - [Transaction Fees](https://solana.com/docs/core/fees?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn about Solana's transaction fees, including the base and priority fees, how each is applied, and best practices for managing compute units in your transactions. - [Transactions and Instructions](https://solana.com/docs/core/transactions?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn about Solana transactions and instructions - the fundamental building blocks for interacting with the Solana blockchain. Understand transaction structure and instruction composition with practical examples. ## Docs - Intro - [Composing Multiple Programs](https://solana.com/docs/intro/quick-start/cross-program-invocation?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to implement Cross Program Invocations (CPIs) in Solana programs using the Anchor framework. This tutorial demonstrates how to transfer SOL between accounts, interact with the System Program, and handle Program Derived Addresses (PDAs) in CPIs. Perfect for developers looking to build composable Solana programs. - [Creating Deterministic Accounts](https://solana.com/docs/intro/quick-start/program-derived-address?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to build a CRUD (Create, Read, Update, Delete) Solana program using Program Derived Addresses (PDAs) and the Anchor framework. This step-by-step guide demonstrates how to create, update, and delete on-chain message accounts using PDAs, implement account validation, and write tests. Perfect for developers looking to understand how to use PDAs in Solana programs. - [Deploying Programs](https://solana.com/docs/intro/quick-start/deploying-programs?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to build, deploy, and test your first Solana program using the Anchor framework and Solana Playground. This beginner-friendly guide walks through creating a simple program, deploying it to devnet, running tests, and closing the program. - [Installation](https://solana.com/docs/intro/installation?utm_source=llms&utm_medium=ai&utm_campaign=txt): A guide to setting up your local Solana development environment. Learn how to install Rust, the Solana CLI, and Anchor Framework on Windows (WSL), Linux, and Mac. - [Quick Start](https://solana.com/docs/intro/quick-start/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn Solana development basics. Create your first program, understand accounts, send transactions, and explore PDAs and CPIs using Solana Playground - no installation required. - [Reading from Network](https://solana.com/docs/intro/quick-start/reading-from-network?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to read data from the Solana blockchain network. This guide covers fetching wallet accounts, program accounts, and token mint accounts using JavaScript/TypeScript, with practical examples using the Solana web3.js library. - [Writing to Network](https://solana.com/docs/intro/quick-start/writing-to-network?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to interact with the Solana network by sending transactions and instructions. Follow step-by-step examples to transfer SOL tokens and create new tokens using the System Program and Token Extensions Program. ## Docs - Programs - [Deploying Programs](https://solana.com/docs/programs/deploying?utm_source=llms&utm_medium=ai&utm_campaign=txt): Uploading custom programs to the Solana blockchain using the Solana CLI. - [FAQ](https://solana.com/docs/programs/faq?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [Limitations](https://solana.com/docs/programs/limitations?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [Program Examples](https://solana.com/docs/programs/examples?utm_source=llms&utm_medium=ai&utm_campaign=txt): A list of Solana program examples in different languages and frameworks, which can help you learn and use as reference for your own projects. - [Program Structure](https://solana.com/docs/programs/rust/program-structure?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to structure Solana programs in Rust, including entrypoints, state management, instruction handling, and testing. - [Rust Programs](https://solana.com/docs/programs/rust/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to develop Solana programs using Rust, including step-by-step instructions for creating, building, testing, and deploying smart contracts on the Solana blockchain. ## Docs - References - [Consume Allocated CUs on sBPF Failure](https://solana.com/docs/references/feature-gates/consume-cus-on-sbpf-failure?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [Direct Mapping](https://solana.com/docs/references/feature-gates/direct-mapping?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [New Vote Instruction Default](https://solana.com/docs/references/feature-gates/tsynmcspg4xficj1v3tdb4c7crmr5tsbhlz4sf7rrna?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [RPC Endpoints](https://solana.com/docs/references/clusters?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn about Solana's network clusters (Devnet, Testnet, and Mainnet Beta), their public RPC endpoints, rate limits, and use cases. Learn how to connect to different Solana networks for development, testing, and production. - [Reserve Minimal CUs for Builtins](https://solana.com/docs/references/feature-gates/reserve-minimal-cus-for-builtins?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [Stake Accounts](https://solana.com/docs/references/staking/stake-accounts?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [Stake Programming](https://solana.com/docs/references/staking/stake-program?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [Staking](https://solana.com/docs/references/staking/?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [Terminology](https://solana.com/docs/references/terminology?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn the essential terminology used throughout the Solana blockchain and development models. ## Docs - Rpc - [Data Structures as JSON](https://solana.com/docs/rpc/json-structures?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [HTTP Methods](https://solana.com/docs/rpc/http/?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [Solana RPC Methods](https://solana.com/docs/rpc/?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [Websocket Methods](https://solana.com/docs/rpc/websocket/?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [accountSubscribe](https://solana.com/docs/rpc/websocket/accountsubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [accountUnsubscribe](https://solana.com/docs/rpc/websocket/accountunsubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [blockSubscribe](https://solana.com/docs/rpc/websocket/blocksubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [blockUnsubscribe](https://solana.com/docs/rpc/websocket/blockunsubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [confirmTransaction](https://solana.com/docs/rpc/deprecated/confirmtransaction?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getAccountInfo](https://solana.com/docs/rpc/http/getaccountinfo?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getBalance](https://solana.com/docs/rpc/http/getbalance?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getBlock](https://solana.com/docs/rpc/http/getblock?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getBlockCommitment](https://solana.com/docs/rpc/http/getblockcommitment?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getBlockHeight](https://solana.com/docs/rpc/http/getblockheight?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getBlockProduction](https://solana.com/docs/rpc/http/getblockproduction?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getBlockTime](https://solana.com/docs/rpc/http/getblocktime?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getBlocks](https://solana.com/docs/rpc/http/getblocks?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getBlocksWithLimit](https://solana.com/docs/rpc/http/getblockswithlimit?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getClusterNodes](https://solana.com/docs/rpc/http/getclusternodes?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getConfirmedBlock](https://solana.com/docs/rpc/deprecated/getconfirmedblock?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getConfirmedBlocks](https://solana.com/docs/rpc/deprecated/getconfirmedblocks?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getConfirmedBlocksWithLimit](https://solana.com/docs/rpc/deprecated/getconfirmedblockswithlimit?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getConfirmedSignaturesForAddress2](https://solana.com/docs/rpc/deprecated/getconfirmedsignaturesforaddress2?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getConfirmedTransaction](https://solana.com/docs/rpc/deprecated/getconfirmedtransaction?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getEpochInfo](https://solana.com/docs/rpc/http/getepochinfo?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getEpochSchedule](https://solana.com/docs/rpc/http/getepochschedule?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getFeeCalculatorForBlockhash](https://solana.com/docs/rpc/deprecated/getfeecalculatorforblockhash?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getFeeForMessage](https://solana.com/docs/rpc/http/getfeeformessage?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getFeeRateGovernor](https://solana.com/docs/rpc/deprecated/getfeerategovernor?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getFees](https://solana.com/docs/rpc/deprecated/getfees?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getFirstAvailableBlock](https://solana.com/docs/rpc/http/getfirstavailableblock?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getGenesisHash](https://solana.com/docs/rpc/http/getgenesishash?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getHealth](https://solana.com/docs/rpc/http/gethealth?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getHighestSnapshotSlot](https://solana.com/docs/rpc/http/gethighestsnapshotslot?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getIdentity](https://solana.com/docs/rpc/http/getidentity?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getInflationGovernor](https://solana.com/docs/rpc/http/getinflationgovernor?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getInflationRate](https://solana.com/docs/rpc/http/getinflationrate?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getInflationReward](https://solana.com/docs/rpc/http/getinflationreward?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getLargestAccounts](https://solana.com/docs/rpc/http/getlargestaccounts?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getLatestBlockhash](https://solana.com/docs/rpc/http/getlatestblockhash?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getLeaderSchedule](https://solana.com/docs/rpc/http/getleaderschedule?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getMaxRetransmitSlot](https://solana.com/docs/rpc/http/getmaxretransmitslot?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getMaxShredInsertSlot](https://solana.com/docs/rpc/http/getmaxshredinsertslot?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getMinimumBalanceForRentExemption](https://solana.com/docs/rpc/http/getminimumbalanceforrentexemption?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getMultipleAccounts](https://solana.com/docs/rpc/http/getmultipleaccounts?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getProgramAccounts](https://solana.com/docs/rpc/http/getprogramaccounts?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getRecentBlockhash](https://solana.com/docs/rpc/deprecated/getrecentblockhash?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getRecentPerformanceSamples](https://solana.com/docs/rpc/http/getrecentperformancesamples?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getRecentPrioritizationFees](https://solana.com/docs/rpc/http/getrecentprioritizationfees?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getSignatureConfirmation](https://solana.com/docs/rpc/deprecated/getsignatureconfirmation?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getSignatureStatus](https://solana.com/docs/rpc/deprecated/getsignaturestatus?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getSignatureStatuses](https://solana.com/docs/rpc/http/getsignaturestatuses?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getSignaturesForAddress](https://solana.com/docs/rpc/http/getsignaturesforaddress?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getSlot](https://solana.com/docs/rpc/http/getslot?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getSlotLeader](https://solana.com/docs/rpc/http/getslotleader?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getSlotLeaders](https://solana.com/docs/rpc/http/getslotleaders?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getSnapshotSlot](https://solana.com/docs/rpc/deprecated/getsnapshotslot?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getStakeActivation](https://solana.com/docs/rpc/deprecated/getstakeactivation?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getStakeMinimumDelegation](https://solana.com/docs/rpc/http/getstakeminimumdelegation?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getSupply](https://solana.com/docs/rpc/http/getsupply?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getTokenAccountBalance](https://solana.com/docs/rpc/http/gettokenaccountbalance?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getTokenAccountsByDelegate](https://solana.com/docs/rpc/http/gettokenaccountsbydelegate?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getTokenAccountsByOwner](https://solana.com/docs/rpc/http/gettokenaccountsbyowner?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getTokenLargestAccounts](https://solana.com/docs/rpc/http/gettokenlargestaccounts?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getTokenSupply](https://solana.com/docs/rpc/http/gettokensupply?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getTransaction](https://solana.com/docs/rpc/http/gettransaction?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getTransactionCount](https://solana.com/docs/rpc/http/gettransactioncount?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getVersion](https://solana.com/docs/rpc/http/getversion?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [getVoteAccounts](https://solana.com/docs/rpc/http/getvoteaccounts?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [isBlockhashValid](https://solana.com/docs/rpc/http/isblockhashvalid?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [logsSubscribe](https://solana.com/docs/rpc/websocket/logssubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [logsUnsubscribe](https://solana.com/docs/rpc/websocket/logsunsubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [minimumLedgerSlot](https://solana.com/docs/rpc/http/minimumledgerslot?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [programSubscribe](https://solana.com/docs/rpc/websocket/programsubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [programUnsubscribe](https://solana.com/docs/rpc/websocket/programunsubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [requestAirdrop](https://solana.com/docs/rpc/http/requestairdrop?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [rootSubscribe](https://solana.com/docs/rpc/websocket/rootsubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [rootUnsubscribe](https://solana.com/docs/rpc/websocket/rootunsubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [sendTransaction](https://solana.com/docs/rpc/http/sendtransaction?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [signatureSubscribe](https://solana.com/docs/rpc/websocket/signaturesubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [signatureUnsubscribe](https://solana.com/docs/rpc/websocket/signatureunsubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [simulateTransaction](https://solana.com/docs/rpc/http/simulatetransaction?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [slotSubscribe](https://solana.com/docs/rpc/websocket/slotsubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [slotUnsubscribe](https://solana.com/docs/rpc/websocket/slotunsubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [slotsUpdatesSubscribe](https://solana.com/docs/rpc/websocket/slotsupdatessubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [slotsUpdatesUnsubscribe](https://solana.com/docs/rpc/websocket/slotsupdatesunsubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [voteSubscribe](https://solana.com/docs/rpc/websocket/votesubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [voteUnsubscribe](https://solana.com/docs/rpc/websocket/voteunsubscribe?utm_source=llms&utm_medium=ai&utm_campaign=txt) ## Docs - Tokens - [Apply Pending Balance](https://solana.com/docs/tokens/extensions/confidential-transfer/apply-pending-balance?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to apply pending balance to make funds available. - [Confidential Transfer](https://solana.com/docs/tokens/extensions/confidential-transfer/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn about the Confidential Transfer extension and how to use it to add optional features to token mints and accounts. - [Create a Token Account](https://solana.com/docs/tokens/basics/create-token-account?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to create SPL Token Accounts. - [Create a Token Account](https://solana.com/docs/tokens/extensions/confidential-transfer/create-token-account?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to create a token account with the Confidential Transfer extension. - [Create a Token Mint](https://solana.com/docs/tokens/basics/create-mint?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to create an SPL Token mint. - [Create a Token Mint](https://solana.com/docs/tokens/extensions/confidential-transfer/create-mint?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to create a token mint with the Confidential Transfer extension. - [Deposit Tokens](https://solana.com/docs/tokens/extensions/confidential-transfer/deposit-tokens?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to deposit tokens to confidential state. - [Extensions](https://solana.com/docs/tokens/extensions/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn about the Token Extensions Program (Token 2022) and how to use its extensions to add optional features to token mints and accounts. - [Mint Tokens](https://solana.com/docs/tokens/basics/mint-tokens?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to mint new units of a token. - [SPL Token Basics](https://solana.com/docs/tokens/basics/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn the basic instructions for interacting with SPL Tokens. - [Token Programs](https://solana.com/docs/tokens/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn about Solana's Token Programs. - [Transfer Tokens](https://solana.com/docs/tokens/basics/transfer-tokens?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to transfer tokens between token accounts. - [Transfer Tokens](https://solana.com/docs/tokens/extensions/confidential-transfer/transfer-tokens?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to transfer tokens privately from one token account to another. - [Withdraw Tokens](https://solana.com/docs/tokens/extensions/confidential-transfer/withdraw-tokens?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to withdraw tokens from confidential state. ## Docs - Toolkit - [Basic Anchor](https://solana.com/docs/toolkit/projects/anchor-init?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to set up a new Anchor workspace for Solana program development for beginners. - [Best Practices](https://solana.com/docs/toolkit/best-practices?utm_source=llms&utm_medium=ai&utm_campaign=txt): The best practices for Solana program development, including: optimize compute, fuzzing, repo structure, indexing, and more. - [Code Coverage](https://solana.com/docs/toolkit/test-suite/code-coverage?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to check the code coverage for Solana programs when testing - [Existing Projects](https://solana.com/docs/toolkit/projects/existing-project?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to add an existing project to Solana project scaffold using the - [Fuzz Tester](https://solana.com/docs/toolkit/test-suite/fuzz-tester?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to create fuzz tests for Solana programs in Rust - [Getting Started](https://solana.com/docs/toolkit/getting-started?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to set up the Solana Toolkit and install the Solana CLI - [JavaScript Tests](https://solana.com/docs/toolkit/test-suite/js-test?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to write fast tests for Solana programs in JavaScript and NodeJS using Solana bankrun - [Local Validator](https://solana.com/docs/toolkit/local-validator?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to run the Solana local validator for Solana local testing - [Mobile App](https://solana.com/docs/toolkit/projects/mobile-app?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to create a mobile app on the Solana blockchain - [Overview](https://solana.com/docs/toolkit/test-suite/overview?utm_source=llms&utm_medium=ai&utm_campaign=txt) - [Overview](https://solana.com/docs/toolkit/projects/overview?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to create a new project for Solana program development for beginners. - [Project layout](https://solana.com/docs/toolkit/projects/project-layout?utm_source=llms&utm_medium=ai&utm_campaign=txt): Best practices for Solana program repo and file structure when developing Solana programs - [Rust Tests](https://solana.com/docs/toolkit/test-suite/rust-tests?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to write tests for Solana programs in Rust with litesvm - [Security Scanner](https://solana.com/docs/toolkit/test-suite/security-scanner?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to check for security vulnerabilities in Solana programs - [Solana Programs](https://solana.com/docs/toolkit/projects/solana-program?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to create a new Solana project scaffold for program development with the - [Testing Basics](https://solana.com/docs/toolkit/test-suite/basics?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to run tests for Solana program development - [The Solana Toolkit](https://solana.com/docs/toolkit/?utm_source=llms&utm_medium=ai&utm_campaign=txt): This is an overview of the Solana Toolkit and mucho CLI. It includes how to write tests for Solana programs, how to create a new project on Solana, and what the best practices are for writing Solana programs - [Troubleshooting](https://solana.com/docs/toolkit/troubleshooting?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to troubleshoot Solana programs - [Web App](https://solana.com/docs/toolkit/projects/web-app?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to create a web app for Solana program development with the ## Guides - Advanced - [A Guide to Stake-weighted Quality of Service on Solana](https://solana.com/developers/guides/advanced/stake-weighted-qos?utm_source=llms&utm_medium=ai&utm_campaign=txt): Stake-weighted QoS (Quality-of-Service) is an implementation feature which, when enabled, allows leaders (block producers) to identify and prioritize transactions proxied through a staked validator as an additional sybil resistance mechanism. - [Actions and Blinks](https://solana.com/developers/guides/advanced/actions?utm_source=llms&utm_medium=ai&utm_campaign=txt): Solana Actions are APIs that return transactions for users to preview and sign. Blockchain links – or blinks – turn Actions into a shareable, metadata-rich link. - [Add Solana to Your Exchange](https://solana.com/developers/guides/advanced/exchange?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to integrate Solana into your exchange with this guide covering node setup and implementation details for deposits and withdrawals. - [Address Lookup Tables](https://solana.com/developers/guides/advanced/lookup-tables?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to use Solana Address Lookup Tables (ALTs) to efficiently handle up to 64 addresses per transaction. Create, extend, and utilize lookup tables using web3.js. - [Confirmation & Expiration](https://solana.com/developers/guides/advanced/confirmation?utm_source=llms&utm_medium=ai&utm_campaign=txt): Understand how Solana transaction confirmation and when a transaction expires (including recent blockhash checks). - [Durable & Offline Transaction Signing using Nonces](https://solana.com/developers/guides/advanced/introduction-to-durable-nonces?utm_source=llms&utm_medium=ai&utm_campaign=txt): One-stop shop for Solana - [How to Optimize Compute Usage on Solana](https://solana.com/developers/guides/advanced/how-to-optimize-compute?utm_source=llms&utm_medium=ai&utm_campaign=txt): Minimizing the amount of compute a program uses is critical both for the performance and cost of executing transactions. This guide will show you how to optimize compute usage in your programs on Solana. - [How to Request Optimal Compute Budget](https://solana.com/developers/guides/advanced/how-to-request-optimal-compute?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to use transaction simulation to get the compute units consumed and build an optimal transaction. - [How to Verify a Program](https://solana.com/developers/guides/advanced/verified-builds?utm_source=llms&utm_medium=ai&utm_campaign=txt): Verified builds is a way to link your program to its source code and let everyone independently verify that the program was indeed built from that provided source code. - [How to auto approve transactions](https://solana.com/developers/guides/advanced/auto-approve?utm_source=llms&utm_medium=ai&utm_campaign=txt): By auto approving transactions dApps and games can create a more fluid user experience. This is especially interesting for on-chain games. - [How to use Priority Fees on Solana](https://solana.com/developers/guides/advanced/how-to-use-priority-fees?utm_source=llms&utm_medium=ai&utm_campaign=txt): Priority Fees are a new feature on Solana that allow you to specify an additional fee to your transactions. These fees help make your transaction more economically compelling to include in a block. - [Retrying Transactions](https://solana.com/developers/guides/advanced/retry?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to handle dropped transactions and implement custom retry logic on Solana. This guide covers transaction rebroadcasting, preflight checks, and best practices for managing transaction retries to ensure reliable transaction processing on the Solana blockchain. - [Speed up Solana program tests with Jest and Bankrun](https://solana.com/developers/guides/advanced/testing-with-jest-and-bankrun?utm_source=llms&utm_medium=ai&utm_campaign=txt): Testing programs is important. Bankrun offers a lightweight alternative to the local validator for testing Solana programs and enables features like custom account data and time travel. Tests can be up to 10 times faster using bankrun. - [State Compression](https://solana.com/developers/guides/advanced/state-compression?utm_source=llms&utm_medium=ai&utm_campaign=txt): State Compression is the method of cheaply and securely storing - [Versioned Transactions](https://solana.com/developers/guides/advanced/versions?utm_source=llms&utm_medium=ai&utm_campaign=txt): Explore the core Solana concepts: transactions, versioned transactions, enabling additional functionality in the Solana runtime, address lookup tables, and more. ## Guides - Dapps - [Cash App on Solana](https://solana.com/developers/guides/dapps/cash-app?utm_source=llms&utm_medium=ai&utm_campaign=txt): Solana developer quickstart guide to learn how to create a React Native mobile app that is both Android and iOS compatible. This app will mimic a cash app experience but run on the Solana blockchain, showcasing that web3 products can have the same user experience as web2 products. To build this, we will need to write an Anchor program, integrate the Solana Name Service SDK, and integrate Solana pay. - [How to create a CRUD dApp on Solana](https://solana.com/developers/guides/dapps/journal?utm_source=llms&utm_medium=ai&utm_campaign=txt): Solana developer quickstart guide to learn how to create a basic CRUD dApp on the Solana blockchain with a simple journal program and interact with the program via a UI. ## Guides - Depin - [DePIN Quickstart Guide](https://solana.com/developers/guides/depin/getting-started?utm_source=llms&utm_medium=ai&utm_campaign=txt): While each DePIN network has a unique product focus, most DePIN networks utilize Solana for a common set of use-cases. This guide is meant to help builders get oriented to common onchain DePIN use-cases. ## Guides - Games - [Build an Energy System for Casual Games on Solana](https://solana.com/developers/guides/games/energy-system?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to build an on-chain energy system for a game, allowing players to expend energy to perform actions, refilling it over time. - [Getting started with game development on Solana](https://solana.com/developers/guides/games/getting-started-with-game-development?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to build games on Solana. Solana is well built for web3 games of all genres utilizing speed, low fees, and more to create an amazing gaming experience - [Hello World for Solana Game Development](https://solana.com/developers/guides/games/hello-world?utm_source=llms&utm_medium=ai&utm_campaign=txt): Get started building Solana games with a basic adventure game using the Anchor framework. - [How to interact with tokens in programs](https://solana.com/developers/guides/games/interact-with-tokens?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to use tokens in Solana games with an on-chain tutorial - [Port Anchor to Unity](https://solana.com/developers/guides/games/porting-anchor-to-unity?utm_source=llms&utm_medium=ai&utm_campaign=txt): Using Anchor IDL you can interact with your program directly from unity - [Saving game state](https://solana.com/developers/guides/games/saving-game-state?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to save the state of a game in a Solana program - [Solana Game Development Examples](https://solana.com/developers/guides/games/game-examples?utm_source=llms&utm_medium=ai&utm_campaign=txt): A list of open source games and examples on Solana with tutorials to get you started. - [Storing SOL in a PDA](https://solana.com/developers/guides/games/store-sol-in-pda?utm_source=llms&utm_medium=ai&utm_campaign=txt): Using PDAs, you can reward SOL to players playing your game. Learn how to reward SOL from a PDA when players find chests in this game. - [Using NFTs and Digital Assets in Games](https://solana.com/developers/guides/games/nfts-in-games?utm_source=llms&utm_medium=ai&utm_campaign=txt): NFTs can be a powerful tool in blockchain games. Learn how to utilize NFTs in Solana games to their full potential. ## Guides - Getstarted - [CosmWasm Smart Contracts to Solana Programs](https://solana.com/developers/guides/getstarted/cosmwasm-to-solana?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to write Solana Programs with CosmWasm Experience - [Create a token on Solana](https://solana.com/developers/guides/getstarted/how-to-create-a-token?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to create a token on Solana. - [EVM to SVM: Understanding Solana for EVM developers](https://solana.com/developers/guides/getstarted/evm-to-svm?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn about the key differences between the SVM and EVM development environments and start building with Solana. - [Full-stack Solana development with React and Anchor](https://solana.com/developers/guides/getstarted/full-stack-solana-development?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to build a full-stack Solana dApp with React and Anchor - [Getting started with Solana with Rust Experience](https://solana.com/developers/guides/getstarted/rust-to-solana?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to start building on Solana as a Rust Engineer - [How to CPI in a Solana program](https://solana.com/developers/guides/getstarted/how-to-cpi?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn how to implement Cross Program Invocations (CPI) in Solana programs using the Anchor framework - [How to CPI with a PDA Signer in a Solana program](https://solana.com/developers/guides/getstarted/how-to-cpi-with-signer?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn to implement Cross Program Invocations (CPI) with a PDA Signer in Solana programs using the Anchor framework - [How to get Solana devnet SOL (including airdrops and faucets)](https://solana.com/developers/guides/getstarted/solana-token-airdrop-and-faucets?utm_source=llms&utm_medium=ai&utm_campaign=txt): A list of the most common ways to get devnet and testnet SOL tokens for Solana development. Including: airdrop, web3.js, POW faucet, and more. - [How to get started with AI tools on Solana](https://solana.com/developers/guides/getstarted/intro-to-ai?utm_source=llms&utm_medium=ai&utm_campaign=txt): This guide gives an overview of the AI tools available for Solana and how to get started with them. - [Scaffolding your web and Anchor project on Solana](https://solana.com/developers/guides/getstarted/scaffold-nextjs-anchor?utm_source=llms&utm_medium=ai&utm_campaign=txt): A quickstart guide to scaffolding projects using React/NextJS and Anchor - useful for hackathons! - [Setup, build, and deploy a Solana program locally in Rust](https://solana.com/developers/guides/getstarted/local-rust-hello-world?utm_source=llms&utm_medium=ai&utm_campaign=txt): This quickstart guide will demonstrate how to quickly setup, build, and deploy your first Rust based Solana program to the blockchain. - [Solana Test Validator Guide](https://solana.com/developers/guides/getstarted/solana-test-validator?utm_source=llms&utm_medium=ai&utm_campaign=txt): How to run localnet on your computer by using the Solana test validator for local development. ## Guides - Intro - [Wallets Explained](https://solana.com/developers/guides/intro/wallets-explained?utm_source=llms&utm_medium=ai&utm_campaign=txt): What is a crypto wallet? They do not actually store your crypto. They store a secret key that allows you to prove you own an address on a blockchain. ## Guides - Javascript - [Creating Compressed NFTs with JavaScript](https://solana.com/developers/guides/javascript/compressed-nfts?utm_source=llms&utm_medium=ai&utm_campaign=txt): Compressed NFTs use the Bubblegum program from Metaplex to cheaply and securely store NFT metadata using State Compression on Solana. - [Get All Program Accounts using TypeScript](https://solana.com/developers/guides/javascript/get-program-accounts?utm_source=llms&utm_medium=ai&utm_campaign=txt): Learn more about GetProgramAccounts RPC method that returns all accounts owned by a program. ## Guides - Permissioned-environments - [A Guide to Solana Permissioned Environments](https://solana.com/developers/guides/permissioned-environments/?utm_source=llms&utm_medium=ai&utm_campaign=txt): Solana Permissioned Environments bring the speed and scalability of Solana with the regulatory and compliant control of a private blockchain. Learn how to deploy and integrate Solana Permissioned Environments for your organization. ## Guides - Token-extensions - [Dynamic metadata NFTs using Token Extensions](https://solana.com/developers/guides/token-extensions/dynamic-meta-data-nft?utm_source=llms&utm_medium=ai&utm_campaign=txt): Using the metadata token extension it is possible to save dynamic metadata, like level and XP, directly in the mint of an NFT. - [Getting Started with Token Extensions](https://solana.com/developers/guides/token-extensions/getting-started?utm_source=llms&utm_medium=ai&utm_campaign=txt): With the new token extensions, you can create custom logic for your tokens. In this guide we will go over everything you need to know about token extensions and what you need to get started building today - [How to use the Default Account State extension](https://solana.com/developers/guides/token-extensions/default-account-state?utm_source=llms&utm_medium=ai&utm_campaign=txt): Configure all new Token Accounts to be frozen by default, then requiring all tokens to be unfrozen by the authority before they can be usable. - [How to use the Immutable Owner extension](https://solana.com/developers/guides/token-extensions/immutable-owner?utm_source=llms&utm_medium=ai&utm_campaign=txt): With the Token program, the `SetAuthority` instruction can be used to transfer ownership of an account to another. The `ImmutableOwner` extension can be used to prevent this. - [How to use the Interest-Bearing extension](https://solana.com/developers/guides/token-extensions/interest-bearing-tokens?utm_source=llms&utm_medium=ai&utm_campaign=txt): Interest-bearing tokens are tokens that can either increase or decrease in value over time. Similar to how a bank savings account or a loan accumulates interest. - [How to use the Metadata Pointer extension](https://solana.com/developers/guides/token-extensions/metadata-pointer?utm_source=llms&utm_medium=ai&utm_campaign=txt): The Metadata Pointer extension enables a Mint Account to specify the address of the account that stores its metadata. When used along with the Metadata Extension, metadata can be stored directly on the Mint Account. - [How to use the Mint Close Authority extension](https://solana.com/developers/guides/token-extensions/mint-close-authority?utm_source=llms&utm_medium=ai&utm_campaign=txt): With Token Extensions, it is possible to close token mint accounts by initializing the MintCloseAuthority extension before initializing the mint. - [How to use the Non-transferable extension](https://solana.com/developers/guides/token-extensions/non-transferable?utm_source=llms&utm_medium=ai&utm_campaign=txt): In the world of digital collectibles, NFTs have plenty of uses outside of the PFP meta. Enter the concept of - [How to use the Permanent Delegate extension](https://solana.com/developers/guides/token-extensions/permanent-delegate?utm_source=llms&utm_medium=ai&utm_campaign=txt): Token Extensions allow you to specify a permanent account delegate for a mint with unlimited delegate privileges over any account associated with that mint, including burning or transferring any amount of tokens. - [How to use the Reallocate instruction](https://solana.com/developers/guides/token-extensions/reallocate?utm_source=llms&utm_medium=ai&utm_campaign=txt): The Token Extensions program has an account extension that can be applied after initializing a Token Account, enabling expanding support for more extensions after initial creation. - [How to use the Required Memo token extension](https://solana.com/developers/guides/token-extensions/required-memo?utm_source=llms&utm_medium=ai&utm_campaign=txt): Memos in financial transactions serve as a communication tool between sender and recipient. It aids in the identification of both parties and offers clarity on the purpose of the transfer. - [How to use the Transfer Fee extension](https://solana.com/developers/guides/token-extensions/transfer-fee?utm_source=llms&utm_medium=ai&utm_campaign=txt): With any form of transaction, there - [How to use the Transfer Hook extension](https://solana.com/developers/guides/token-extensions/transfer-hook?utm_source=llms&utm_medium=ai&utm_campaign=txt): The Transfer Hook extension and Transfer Hook Interface introduce the ability to create Mint Accounts that execute custom instruction logic on every token transfer. ## Guides - Wallets - [Add Solana Wallet Adapter to a NextJS application](https://solana.com/developers/guides/wallets/add-solana-wallet-adapter-to-nextjs?utm_source=llms&utm_medium=ai&utm_campaign=txt): This guide will lead you through the process of integrating Solana wallet adapter in NextJS and using Solana wallets in your app ## Optional - [StackExchange Support](https://solana.stackexchange.com): Get help from the Solana community on StackExchange - [Validator Setup](https://docs.anza.xyz/operations/setup-a-validator): Setup a validator and get connected to a cluster