Solscaners,
We recognize that Solscan, and many Solana explorers, are hard to read. The nature of this difficulty is due to the various data types and infrastructures on Solana, which are designed to deliver high throughput and fast finality. While the user experience has been great, such designs create a challenge in providing a readable experience of Solana transactions. This series aims to explain Solana Transactions in detail and help you become familiar with Solscan.
So in our first article of the series, we're starting with the very basics of Solana: the whole "accounts" and "programs" concepts.
What are 'Accounts' in Solana?
An account is an address, and it could be used to host many things, whether it is assets in your wallet or smart contracts. It is the basic file unit in Solana, similar to wallet address/smart contracts in Ethereum.
There are 3 basic types of accounts in Solana: Solana Native account, SPL account, and Program account. Activities on Solana are basically these accounts interacting with one another. On Solscan, the inner workings of these accounts under the hood are displayed during the transaction here.
- Native accounts: indicating native programs on Solana, such as System, Vote, Stake.
- SPL accounts: hosting for tokens on Solana other than SOL, as well as NFTs.
- Program accounts: hosting execution action, and running instructions.
When we talk about Solana, you probably come across the term parallel execution. What this means is that transactions on Solana can execute simultaneously, as long as the addresses involved are irrelevant to one another. This is different from Ethereum, where each transaction is in queue for processing after being signed.
How Transaction Occurs Between Wallets is Displayed in our Browser
The fragmentation into different account types, as mentioned above, is what allows Solana to execute simultaneously. Below are high-level images of how a transaction occurs between wallets, and how it is displayed in our browser. We will go through the two most frequently used transaction types, at a simplified level so that users can have a better view.
1. Transfer SOLs from User A to User B
Really straightforward. It’s not different from making transactions on other blockchains.
2. Transfer a SPL token/NFTs on Solana
Imagine wallets on Ethereum have only 1 pocket for all your assets, while Solana wallets (in this case: User accounts) contain a lot of compartments, each of which is responsible for storing ONLY 1 particular SPL token.
Ethereum: 1 pocket for ERC-20 tokens: $ETH, $AAVE, $USDC
Solana: Multiple compartments for SPL tokens: each stores 1 kind of SPL Tokens.
For example, if you have multiple SPL tokens USDC, SLND, RAY, your user account (wallet) will have 3 compartments for these tokens. Also, since Solana NFTs are also SPL Tokens, 1 NFT will be stored within 1 separate SPL token account.
To better visualize the flow of SPL transactions, follow the infographic below:
Example on Solscan:
Conclusion
Interacting with a DeFi protocol is slightly different, as it involves the concept of Program. In the next article, we will go in a bit more depth about Programs, and the details that are displayed on Solscan, for users to easily follow.