Juan David Nicholls
Open Source Contributor, Full-Stack Developer
- Open Source Contributor 👨💻
- Game developer (Hobby) 🎮
- Developer who loves UX 💫
- Chocolate lover 🍫
- Founding Full-Stack Engineer 👷
AT
Solana has low gas-fees, it's really fast...
Smart contracts on Solana, referred to as "programs", are stateless - meaning they don't store anything except code. Everything happens in accounts, so they're central to Solana, they're used for storage, contracts, and for native blockchain programs.
The program itself doesn't hold a user's data. The program just talks to "accounts" that hold the user's data.
These accounts store data:
These accounts store executable programs (AKA smart contracts).
These accounts are for core blockchain functions like Stake, Vote, etc.
FIELD | DESCRIPTION |
---|---|
lamports | The # of lamports owned by this account |
owner | The program owner of this account |
executable | Whether this account can process instructions (is executable) |
data | The raw data byte array stored by this account |
rent_epoch | The next epoch that this account will owe rent |
Iamports are the smallest unit of Solana:
1 Iamport = 0.000000001 SOL
Iamports defines how much SOL the account has 💰
Smart contracts on Solana, referred to as "programs", are stateless - meaning they don't store anything except code. Everything happens in accounts, so they're central to Solana, they're used for storage, contracts, and for native blockchain programs.
Only the account’s owner can debit SOL or modify data
{
key: number, // The address of the account
lamports: number, // Lamports currently held
data: Uint8Array, // Data stored in the account
is_executable: boolean, // Is this data a program?
owner: PublicKey, // The program with write access
}
Smart contracts on Solana are called "programs";
A Solana program is just a piece of code that lives on the blockchain. The blockchain is a place where anyone can run code for a fee. The blockchain is being run by "miners", in the world of Solana we actually call them "validators".
Programs are:
- Special kind of account
- Data is eBPF bytecode
- Written in Rust, C/C++, Python
{
program_id: number, // The program this instruction is for
keys: Array<{
key: PublicKey,
is_mutable: boolean,
is_signer: boolean,
}>,
data: Uint8Array, // Data stored in the account
}
Transactions allows to send an instruction to a Solana program. Transactions send a package of "instructions" to an RPC client, which then forwards it to the network
{
message: {
instructions: Array<Instruction>,
recent_blockhash: number,
fee_payer: PublicKey,
...
},
signers: Array<Uint8Array>,
}
The Metadata Standard on Solana introduces countless ways to customize NFTs and the user’s experience.
By Juan David Nicholls
A brief presentation about Solana