I think it's time to update my pinned tweet with a little more up-to-date links and information for learning @solana so let's do a thread 🧵
PDAs, or program derived addresses, are one of the trickier #Solana concepts 🤔. They're also something that every Solana dev should understand. In this thread, I'll go over what they are, and why they're useful 👇
How do Solana CPIs work? That is, how do Solana programs call into other Solana programs? Here's a quick 6 tweet explanation 👇
Need to decode data for an account owned by a program without a connected wallet? Saber_HQ's SuperCoder is your friend.
A tweet-thread-sized guide to building on Solana from the ground up. Accounts, programs, and instructions to Anchor and Phantom.
A high level breakdown of pedersen commitments that are used in Solana's zk-tokens to hide token balances or amounts
The new (alpha) Metaplex SDK has been public for a week now so I wanted to write a thread explaining the pain points of the previous SDK and how we tackled them.
What are they? Basically a collection of schemas for data consumed by Solana programs: instructions, account data, errors, and more. I'll walk through how to fetch them and use them to decode account data.
Most #solana data uses borsh encoding. It's an interesting format because of how simple it is. In JS, decoding borsh data can be done with 0 dependencies in very few lines of code using a recursive algorithm.
We'll go over the Candy Machine creation process from prepping your NFTs, creating Candy Machine, uploading your NFT, validating, and loading it to the frontend.
Discussion on SPL Associated Token Accounts (ATA) and the risks of signing an unknown setAuthority() transaction and maybe a few ways to mitigate the risks
One key Solana innovation is separating executable code from its state. In web2 terminology, you could say a Solana smart contract is a stateless function.
A basic understanding of zk tokens on Solana, high level breakdown of the zk token's paper-1 of the two whitepapers.
A wallet isn't an actual data struct. It's just a public key. All tokens are stored in "associated" token accounts stored at addresses deterministically found by hashing the wallet and mint addresses