ما هو Solana
Solana عبارة عن blockchain غير مركزية تم تصميمها لتمكين تطبيقات قابلة للتطوير سهلة الاستخدام للعالم. تهدف سولانا في عام 2017 من قبل Anatoly Yakovenko ، وهو مسؤول تنفيذي سابق في كوالكوم ، يهدف سولانا إلى توسيع نطاق الإنتاجية بما يتجاوز ما يتم تحقيقه عادةً عن طريق blockchains الشعبية مع الحفاظ على تكاليف منخفضة. يقوم Solana بتنفيذ نموذج إجماعي هجين مبتكر يجمع بين خوارزمية فريدة من نوعها من تاريخ التاريخ (POH) مع محرك التزامن السريع البرق ، وهو إصدار من إثبات الإبداع (POS). لهذا السبب ، يمكن لشبكة Solana من الناحية النظرية معالجة أكثر من 710،000 معاملة في الثانية (TPS) دون أي حلول تحجيم.
تم تصميم بنية Blockchain من الجيل الثالث من Solana لتسهيل العقود الذكية وإنشاء التطبيق اللامركزي (DAPP). يدعم المشروع مجموعة من منصات التمويل اللامركزية (DEFI) وكذلك الأسواق الرمز المميز غير القابلة للانتهاك (NFT).
تم طرح Solana Blockchain خلال طفرة عرض العملة الأولية لعام 2017 (ICO). تم إصدار TestNet الداخلي للمشروع في عام 2018 ، تليها مراحل TestNet متعددة تؤدي إلى الإطلاق الرسمي في نهاية المطاف للشبكة الرئيسية في عام 2020.
👩🎤 User
Wallet
- Phantom Wallet A non-custodial, chrome extension, Solana crypto wallet
- SolFlare Non-custodial wallet for Solana
Bridge
Allbridge
: backed byAPYSwap
API 2022-Q1 Foundation: https://allbridge.io/Wormhole
: just release v2, (liquidity still not stableBSC
↔︎ETH
↔︎SOL
): https://wormholebridge.com/#/transfer
Stake
Marinade
: Liquid Stake+RefSOL
getmSOL
APY 6.16% and farmSOL-mSOL
: https://marinade.finance/Lido
:stSol
Liquid Stake (planned Ref) APY 5.89%: https://solana.lido.fi/- Stake rank: https://stakewiz.com/
Farms
Raydium
(DEX onSerum
): https://raydium.io/APYSwap
: Stake(ABR
APR 522.37%): https://stake.apyswap.com/- 🐳
Orca
: Pools(ABR-USDC
APR 218%): https://www.orca.so/pools Saber
: cross-chain stablecoin exchange, low and unable to sort APY: https://saber.so/Mercurial
: StablewbBUSD-wbUSDC-wbUSDT-USDC
APY 14.33% : https://mercurial.finance/pools/wbbusd-4poolJupiter
: takes zero fees : https://jup.ag/stats
Farm creation
Yield Aggregator
- 🌷
Tulip
- Aggregates yield farms fromRaydium
andSaber
: https://tulip.garden/leverage - ☀️
Sunny
- Aggregator (Solana’s composable DeFi yield aggregator), low apy bad ui: https://app.sunny.ag/ Francium
- Solana Yield Farming Calculator : https://francium.io/app/calculatorCykura
- Concentrated liquidity: https://cykura.io
Fundraising Protocol
Solanium
: https://solanium.io/Strata
: https://strataprotocol.com/Strata Protocol is an open-source protocol to launch tokens around a person, project, idea, or collective on Solana.
NFT
DAO
Tribeca
: https://tribeca.so/Tribeca is a protocol for creating, managing, and interacting with decentralized autonomous organizations on Solana.
Explorer
SolScan
: https://solscan.io/token/orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZESolona Explorer
: https://explorer.solana.com/address/orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE
Token List
- https://github.com/solana-labs/token-list
- https://shipcapital.substack.com/p/drop-005-solana-tokendao
🧑🏻💻 Developer
Must Read
- ok so what the fuck is the deal with solana anyway: https://2501babe.github.io/posts/solana101.html
- angkor wat: https://2501babe.github.io/posts/anchor101.html
- How smart contracts work on Solana’s Proof of History based blockchain: https://medium.com/solana-labs/high-performance-memory-management-for-smart-contracts-aa9b3bc950fb
- Solana Doc: https://docs.solana.com/
- Sealevel parallel runtime
- Solana Program Library (SLP): https://spl.solana.com/
The Solana Program Library (SPL) is a collection of on-chain programs targeting the Sealevel parallel runtime.
- Solana Development Tutorial: Things you should know before structuring your code: https://solongwallet.medium.com/solana-development-tutorial-things-you-should-know-before-structuring-your-code-807f0e2ee43
- Solana Transactions in Depth: https://medium.com/@asmiller1989/solana-transactions-in-depth-1f7f7fe06ac2
- Solana internals
- Part 1: what are the native on-chain programs and why do they matter?
- Part 2: how is a Solana program deployed and upgraded
https://blog.soteria.dev/solana-internals-part-2-how-is-a-solana-deployed-and-upgraded-d0ae52601b99
- Part 3: the transaction processing unit (TPU)
https://blog.soteria.dev/solana-internals-part-3-the-transaction-processing-unit-tpu-79887af07a04
- Part 4: the bank — a key component
https://blog.soteria.dev/solana-internals-part-4-the-bank-a-key-component-1d47b94cd705
- Part 1: what are the native on-chain programs and why do they matter?
Learn
- Solana Development Course: https://soldev.app/course
This course is designed to be the absolute best starting point for Web Developers looking to learn Web3 Development. https://github.com/Unboxed-Software/solana-course
- Solana Cookbook: https://solanacookbook.com/
The Solana Cookbook is a developer resource that provides the essential concepts and references for building applications on Solana.
- BUIDL a Solana Program - Explain me like I am web2: https://blog.mwrites.xyz/your-first-solana-program
- Build a Web3 App on Solana: https://buildspace.so/learn-solana
Ship an epic Web3 app on Solana with React and Rust.
- Questbook x Superteam: https://www.startonsolana.com/
Learn how to build on the world’s fastest blockchain by doing these quests and start contributing to ecosystem projects right away!
Rust
Basic examples
Figment
Learn: https://learn.figment.io/- Hello World
- Hello Chainlink Price Feeds on Solana
- Break Solana
- R/W JSON format on the Solana contract
- Program examples written in Rust
- Interface for creating and managing SPL Tokens
- Solana Web3 Example: https://yihau.github.io/solana-web3-demo/
Wallet/dApp examples
- SPL Token Wallet (
Serum
): https://github.com/project-serum/spl-token-wallet - Library to allow Solana dApps to use third-party wallets to sign transactions: https://github.com/project-serum/sol-wallet-adapter
- 🏗 Solana App Scaffold: https://github.com/solana-labs/dapp-scaffold
- Web3 Solana, Near: https://github.com/russellwmy/web3-rs
Video examples
- Building SmartContracts With #Solana and #Rust: https://www.youtube.com/watch?v=gA7hFdq2h9Q
- Solana Programming: Connect to Wallet, Send Money, Query Transaction History: https://www.youtube.com/watch?v=wVPGJ_CZTAw
- Build Dapps with Solana and Arweave: https://www.youtube.com/watch?v=Jz5v_u75xk8
- How to Anchor: An introduction to the Anchor Framework: https://www.youtube.com/watch?v=FmdPAwsqJC4
- Avareum - Hello Rust and Anchor Framework (Thai Language): https://www.youtube.com/watch?v=DUnvIO2d-lc
- Writing Smart Contracts on Solana with Anchor by Armani Ferrante: https://youtu.be/cvW8EwGHw8U?t=10
- Why you should build your DeFi Dapp using Anchor by Henry Elder: https://youtu.be/725ddOvfWjk?t=23
- Programming Solana Smart Contracts | Hello World Anchor Tutorial by Henry Elder: https://youtu.be/oD1umX_DnUw
- Programming Solana Smart Contracts | Intermediate Anchor Tutorial by Henry Elder: https://youtu.be/i6Ycr5nhjH8
- PsyOptions Demo Video: https://youtu.be/wNM_MTQQSwY
- Foresight Demo Video - Prediction Markets: https://youtu.be/rL0bzGuwcdo
- Wormhole Video Tutorial - How use Wormhole: https://youtu.be/zooVxP5Ucws
- Rust Solana Tutorial: https://www.youtube.com/watch?v=CsKbzsN7q1o&list=PLUBKxx7QjtVnU3hkPc8GF1Jh4DE7cf4n1
Advanced examples
- Programming on Solana - An Introduction: Building the escrow program
- A Vesting Contract for the Solana Blockchain
- Token Vesting and Stream Payments
- Staking (Use
Anchor
) - Permissioned Markets (Use
Serum
) - The Complete Guide to Full Stack Solana Development with React, Anchor, Rust, and Phantom: https://dev.to/dabit3/the-complete-guide-to-full-stack-solana-development-with-react-anchor-rust-and-phantom-3291
- Swap: https://github.com/REGO350/macroswap
- Anchor: A Powerful Framework for Solana Developers: https://hackmd.io/@ironaddicteddog/solana-anchor-escrow
- Create a Solana dApp from scratch: https://lorisleiva.com/create-a-solana-dapp-from-scratch
Implement a simplified version of Twitter as a Solana dApp (decentralised application). We’ll write our own program and use it in a custom VueJS app.
- Paginating and ordering accounts in Solana: https://lorisleiva.com/paginating-and-ordering-accounts-in-solana
- Solana
NFT
resources : https://www.de.xyz/
Other examples
- Anchor (IDO, CFO, Swap, Multisig, Escrow, Game, Chat, Proxy, …): https://github.com/project-serum/anchor/tree/master/tests
- Voting App: https://medium.com/@smith_10562/a-simple-solana-dapp-tutorial-6dedbdf65444
- The Rust-only Voting example based on MoonZoon and Solana: https://github.com/MartinKavik/voting-solana-moonzoon
- Solana File Upload: https://github.com/mcf-rocks/solana-upload
- SPL Token UI: https://github.com/paul-schaaf/spl-token-ui
- SPL Token Faucet: https://github.com/paul-schaaf/spl-token-faucet
Token faucets allow developers to easily give others access to tokens of a specific mint without sending around their private key. This is accomplished through a token faucet program.
When creating a token faucet, the chosen token’s mint authority is transferred to a Program Derived Address. The program then accepts minting requests. Having received such a request, the program checks that the requested amount is lower than the configured max amount or that the requester is the faucet admin (in which case they may mint as much as they like). These parameters can be set during faucet creation. Finally, a faucet may be closed again but only if it has an admin configured which must sign the closure tx. Faucet closure will transfer the token’s mint authority back to the admin.
- Messaging App (POC): https://github.com/kemargrant/soltalk
- Solana tutorials: https://soldev.app/library/tutorials
- Solana Cookbook: https://solanacookbook.com/
The Solana Cookbook is a developer resource that provides the essential concepts and references for building applications on Solana. Each concept and reference will focus on specific aspects of Solana development while providing additional details and usage examples.
Libraries & Frameworks
- Solana Program Library (SPL) is a collection of on-chain programs targeting the Sealevel parallel runtime: https://github.com/solana-labs/solana-program-library/blob/master/examples/rust/README.md
- Anchor Framework: a framework for Solana’s Sealevel runtime providing several convenient developer tools : https://project-serum.github.io/anchor/tutorials/tutorial-0.html
- Anchor Book: https://book.anchor-lang.com/
- StreamingFast Solana library for Go
- Rust Library for the Binance API
- Peripheral contracts for interacting with Saber: https://github.com/saber-hq/saber-periphery
- The best Solana Program Template (No Anchor!): https://github.com/stegaBOB/solana-program-template
Includes Shank/Solita SDK generation, Amman support, scripts, .github configuration, and more!
Farm SDK
- Orca: https://github.com/orca-so/typescript-sdk
- Francium: https://github.com/Francium-DeFi/francium-sdk
Full Stacks
- Tokio: https://tokio.rs/
Tokio is an asynchronous runtime for the Rust programming language. It provides the building blocks needed for writing network applications. It gives the flexibility to target a wide range of systems, from large servers with dozens of cores to small embedded devices.
RPC
servers
- Project Serum: https://solana-api.projectserum.com (recommended)
- Figment-Solana: https://docs.figment.io/network-documentation/solana/rpc-and-rest-api
- Solana: https://api.mainnet-beta.solana.com (can be unstable)
- GenesysGo: https://genesysgo.com/
- RunNode: https://runnode.com/
- Triton RPC Pool: https://rpcpool.com/
- Blockdaemon: https://blockdaemon.com/marketplace/solana/
- Syndica: https://syndica.io/
- QuickNode: https://quicknode.com/
- Pocket Network: https://www.pokt.network/
Data/API
- Token list: https://github.com/solana-labs/token-list/blob/main/src/tokens/solana.tokenlist.json
Serum
Price API bySonar
: https://docs-price-api.sonar.watch/- DataHub: https://figment.io/datahub/
- Flux Protocol (cross-chain oracle aggregator): https://www.fluxprotocol.org/
- Serum Vial - real-time WebSocket market data API for Serum
- Bonfida: https://docs.bonfida.com/#exchanges
- Bitquery: https://graphql.bitquery.io/ - graphql for Solana blockchain, article
Oracle
- Pyth provides real-time on-chain market data: https://pyth.network/
- Switchboard allows builders to create data feeds from any API: https://switchboard.xyz/
Price examples
curl 'https://price-api.sonar.watch/prices/orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE'
curl 'https://api.solscan.io/account?address=orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE'
Anchor
+Pyth
: https://github.com/project-serum/anchor/blob/master/tests/pyth/tests/pyth.spec.ts
Messaging
Wormhole
is a protocol for communication between different blockchains: https://wormholenetwork.com/
Storage
Arweave
and Solana partnered to provide a decentralised permanent data storage solution of ledger data: https://www.arweave.org/- arweave-parallel-uploader: https://github.com/scottym5797/arweave-parallel-uploader
Ceramic
(StreamingIPFS
): https://ceramic.network/
Tools
- SPL Token UI for general token management on all clusters
- Sollet.io allows you to request airdops and mint test tokens where allowed
- SPL Token Creator UI
- Bonfida Token Minter
- SPL Manager
- honggfuzz-rs: Fuzz your Rust code with Google-developed Honggfuzz!
- https://github.com/lithdew/alon : Alon is an IDE which allows for developers to rapidly build, iterate, test, and deploy decentralized apps and assets on Solana right from their browser
- https://github.com/agoraxyz/agora-solana/blob/main/agsol-borsh-schema/README.md
A parsing library that generates TypeScript classes and serialization schemas from Rust data structures.
Solana PoC Framework
: https://github.com/otter-sec/solana-poc-frameworkA framework for creating PoC’s for Solana Smart Contracts in a painless and intuitive way.
- Solana Playground: https://beta.solpg.io/
- Trdelník: https://github.com/Ackee-Blockchain/trdelnik
🦀 Trdelník is Rust based testing framework providing several convenient developer tools for testing Solana programs written in Anchor.
scfsd
: https://github.com/FrankC01/solana-gadgets/tree/main/rust/scfsdgathers all feature sets and their status from the various Solana clusters
Network status
- @solanastatus Twitter
- Services status an official site
- Solana Beach services status and block explorer
- Solana Validators view validators statistics
- https://www.realtps.net/
Ethereum related
- From Ethereum smart contracts to Solana programs: two common security pitfalls and beyond: https://medium.com/coinmonks/from-ethereum-smart-contracts-to-solana-programs-two-common-security-pitfalls-and-beyond-ea5b919ade1c
- Neon EVM is an Ethereum virtual machine on Solana that enables dApp developers to use Ethereum tooling to scale and get access to liquidity on Solana.
- Solana Composability vs Ethereum Composability: https://blog.strataprotocol.com/solana-composability-vs-eth-composability
Others
- https://github.com/skywinder/web3swift : web3swift is an iOS toolbelt for interaction with the Ethereum network.
- https://github.com/ajamaica/Solana.Swift : Pure swift for Solana protocol.
M1 related
- How to make Solana Test Validator work with a Macbook with M1 chip: https://dev.to/codenjobs/how-to-make-solana-test-validator-work-with-a-macbook-with-m1-chip-5emd
WASM related
- A technical overview of developing gold.xyz: https://mirror.xyz/goldxyz.eth/cP4BqSyI_xP04VgRSsAtdDyDkvDcfUG_ZFgWYILDhjQ?123
memmap2
,rpc
workaround
👩🚀 Product Examples
NFT
Metaplex is a strategic partner of
Solana
Labs
- Create a
Solana
NFT
marketplace and mintNFT
s usingMetaplex
onArweave
: https://learn.figment.io/tutorials/create-a-solana-nft-marketplace-with-metaplex Metaplex
Docs : https://docs.metaplex.com/architecture/deep_dive/overview- Build unique generative NFTs on Solana with Candy Machine v2 and Hashlips Engine: https://learn.figment.io/tutorials/generative-nfts-on-solana-with-candy-machine-v2-and-hashlips
- Mint NFTs on Solana using Metaplex and Anchor: https://github.com/anoushk1234/metaplex-anchor-nft
An example repo to demonstrate how to use anchor and metaplex to mint nfts on solana
Serum
(FTX DEX backend): https://projectserum.com/
- DEX source code
- Serum.JS, client-side javascript resources to connect to the DEX
- Serum DEX UI, an implementation of a UI for the Serum DEX
- Testnet deployment of prototype DEX
- Mainnet examples:
- Swap based on Serum DEX orderbook:
Ceramic
Step.finance
Step Finance is a portfolio visualisation platform which aggregates all LPs, tokens, farms and positions that a user may have associated with their wallet and displays it in an easy to use dashboard with various useful metrics and visualisations. Step aims to be the page which DeFi users have open all day with all the functions and information they need to make informed decisions.
Bonfida
Bonfida is a an on-chain and off-chain tool suite that enables the creation of trading pools.
- Github: https://github.com/Bonfida
IdentitySwap (forked token-swap)
IdentitySwap is an Automatic Money Market (AMM) dApp that demonstrates the concept of Decentralised Identity on the Solana SPL Token-Swap program. A user can interact with a liquidity pool only if they are in possession of a valid identity account, certified by a trusted identity validator.
StreamFlow Finance
A powerful primitive that serves as a building block for various payment-related solutions.
Agrora http://agora.xyz
Agora Space connects Discord, Twitter and other social media platforms with the blockchain providing a range of tools to upgrade DAOs and Social Token communities.
- Github: https://github.com/agoraxyz
Cronos: https://www.cronos.so/
Cronos is a decentralized task scheduler for Solana.
Cardinal: https://www.cardinal.so/
The Utility Layer for Solana NFTs.
- Github: https://github.com/cardinal-labs
Hydra: https://hydra-dox.vercel.app/
Hydra is a wallet of wallets, a fanout wallet if you will. It enables extremely large membership sets that can take part in fund distribution from a central wallet. It works with SOL and any SPL token.
😱 Pitfalls
- Solana Smart Contracts: Common Pitfalls and How to Avoid Them: https://blog.neodyme.io/posts/solana_common_pitfalls
- 10 vulnerabilities to avoid when writing Solana programs: https://twitter.com/pencilflip/status/1483880018858201090
- Sealevel Attacks: https://github.com/coral-xyz/sealevel-attacks
Examples of common exploits unique to the Solana programming model and recommended idioms for avoiding these attacks using the Anchor framework.
DAO
- Deploy DAO: https://github.com/DeployDAO/migrator
- Solana Governance:
🕵🏻♂️ Audit
Soteria
(Recommend): http://soteria.dev/Soteria
— A vulnerability scanner for Solana smart contracts: https://medium.com/coinmonks/soteria-a-vulnerability-scanner-for-solana-smart-contracts-cc202cf17c99- How to audit Solana smart contracts
- Part 1: a systematic approach: https://medium.com/coinmonks/how-to-audit-solana-smart-contracts-part-1-a-systematic-approach-56a434f6c9ed
- Part 2: automated scanning: https://medium.com/coinmonks/how-to-audit-solana-smart-contracts-part-2-automated-scanning-ceb88830ae6d
- Part 3: penetration testing: https://medium.com/coinmonks/how-to-audit-solana-smart-contracts-part-3-penetration-testing-a315b3bbb2d3
- Part 4: the Anchor framework: https://medium.com/coinmonks/how-to-audit-solana-smart-contracts-part-4-the-anchor-framework-ef42d944f086
Bonfida
by Kudelski: https://github.com/Bonfida/token-vesting/blob/master/audit/Bonfida_SecurityAssessment_Vesting_Final050521.pdfQuantstamp
: https://solana.com/SolanaQuantstampStakePoolAudit.pdfNeodyme
: https://solana.com/SolanaNeodymeStakePoolAudit.pdfKudelski
: https://solana.com/SolanaKudelskiStakePoolAudit.pdfSolido
: https://github.com/ChorusOne/solido/tree/main/auditSaber.stable-swap
: https://github.com/saber-hq/stable-swap/blob/master/audit/bramah-systems.pdfQuarry
: https://github.com/QuarryProtocol/quarry/blob/master/audit/quantstamp.pdfOtterSec
: https://github.com/otter-sec
Incident
2020-09-14
- Reflections on Solana’s Sept 14 outage: https://jumpcrypto.com/reflections-on-the-sept-14-solana-outage/2022-02-03
- The Wormhole Hack: https://blog.soteria.dev/the-wormhole-hack-how-soteria-detects-the-vulnerability-automatically-eb0f433e80712022-04-26
- Solana Program Library token-swap critical rounding exploit: https://osec.io/blog/reports/2022-04-26-spl-swap-rounding/2022-04-30
- Solana Mainnet Beta Outage Report and Mitigation: https://solana.com/news/04-30-22-solana-mainnet-beta-outage-report-mitigation2022-06-02
- Solana outage cause by durable nonces bug: https://solana.com/news/06-01-22-solana-mainnet-beta-outage-report-2- https://twitter.com/laine_sa_/status/1532130311152226304
- Solana Deep Dive - Network Outage: https://twitter.com/i/spaces/1RDGlgNOebqKL?s=20