This Solana course is designed for engineers with a beginner or intermediate background in Ethereum or EVM development to get up to speed quickly with Solana program development.
-
Day 1: Hello World (and troubleshooting Solana installation). lib.rs , got.ts, Learn more
-
Day 2: Function arguments, math, and arithmetic overflow. lib.rs , day2.ts, Learn more
-
Day 3: Anchor function magic and Interface Definition Language. lib.rs , day3.ts, Learn more
-
Day 4: Solana reverts, errors, and basic access control. lib.rs , day4.ts, Learn more
-
Day 5: Where is the constructor? About anchor deploy . lib.rs, day5.ts, Learn more
-
Day 6: Solidity Translations to Rust and Solana. lib.rs , day6.ts, Learn more
-
Day 7: The unusual syntax of Rust. Learn more
-
Day 8: Understanding function-like macros in Rust. Learn more
-
Day 9: Rust Structs and Attribute-like and Custom Derive Macros. lib.rs , main.rs, Learn more
-
Day 10: Translating Solidity function visibility and contract inheritance to Solana . lib.rs, day10.ts, Learn more
-
Day 11: Block variables in Solana. lib.rs , day11.ts, Learn more
-
Day 12: Beyond the block: sysvars. lib.rs , day12.ts, Learn more
-
Day 13: Solana logs, events, and transaction history. lib.rs , day13.ts, Learn more
-
Day 14: tx.origin, msg.sender, and onlyOwner in Solana. lib.rs , day14.ts, Learn more
-
Day 15: Transaction fees and compute units . lib.rs, day15.ts, Learn more
-
Day 16: Accounts in Solana. lib.rs , day16.ts, Learn more
-
Day 17: Writing to storage. lib.rs , day17.ts, Learn more
-
Day 18: Reading Accounts from TypeScript. lib.rs , day18.ts, Learn more
-
Day 19: Creating mappings and nested mappings in Solana. lib.rs , day19.ts, Learn more
-
Day 20: Cost of storage, maximum storage size, and account resizing. lib.rs , day20.ts, Learn more
-
Day 21: Reading an account balance in Rust. lib.rs , day21.ts, Learn more
-
Day 22: Modifiers, view pure, payable, and fallback in Solana. Learn more, Learn more
-
Day 23: Building a payment splitter in Solana. lib.rs , day23.ts, Learn more
-
Day 24: Authorizing wallets: "Pranking tx.origin". lib.rs , day24.ts, Learn more
-
Day 25: PDA vs Keypair Accounts. lib.rs , day25.ts, Learn more
-
Day 26: Account Ownership in Solana. lib.rs , day26.ts, Learn more
-
Day 27: init_if_needed and the Reinitialization Attack. lib.rs , day27.ts, Learn more
-
Day 28: Multicall in Solana: Batching Transactions. lib.rs , day28.ts, Learn more
-
Day 29: Owner vs Authority. lib.rs , day29.ts, Learn more
-
Day 30: Deleting Accounts and Closing Programs. lib.rs , day30.ts, Learn more
-
Day 31: Account types in #[derive(Accounts)]. lib.rs , day31.ts, Learn more
-
Day 32: Reading Another Anchor Program’s Account Data On Chain. lib.rs , day32.ts, Learn more
-
Day 33: Cross Program Invocation . lib.rs, day33.ts, Learn more