Questions tagged [account]
The account tag has no usage guidance.
250 questions
30
votes
6
answers
2k
views
What is a Program Derived Address (PDA) exactly?
Is this an account or is it an address? Why do I need it? What problem or use case does it solve? Why can't I just use a regular account instead?
9
votes
1
answer
684
views
How can I increase an existing account size?
ie. Initialize account with 255 byte space. Pay to double the space through anchor.
8
votes
1
answer
2k
views
What is Anchor (8 bytes) discriminator
The question should be straightforward.
7
votes
2
answers
793
views
How to correctly read data from a Zero Copy account
I'm having trouble reading data in the client from a program with a zero copy account. I've defined the account as follows:
#[account(zero_copy)]
#[repr(packed)]
pub struct EventQueue {
header: ...
7
votes
1
answer
423
views
what is ledger space in solana?
from here
On Solana, State Compression is the method of creating a "fingerprint"
(or hash) of off-chain data and storing this fingerprint on-chain for
secure verification. Effectively using ...
6
votes
1
answer
492
views
How do I get historical AccountInfos at timestamp x, y, and z?
I would like to create transaction graphs for research purposes. To do this I need to obtain the data in the account at specific timestamps. What's the simplest way to do this?
5
votes
2
answers
1k
views
How much rent is needed to create a new account?
When creating a new account on Solana, how do I calculate the amount of rent (SOL) needed to pay for and create the account?
5
votes
1
answer
539
views
How to export all Solana accounts with positive balance?
Given access to Solana validator node and solana command, how to export a list of all account addresses with positive balance (at the latest block)? Preferably in CSV format.
5
votes
1
answer
357
views
Whats the difference between a Signer and Accounts in Anchor? Where should they be used?
pub fn startstuffoff(ctx: Context<StartStuffOff>) -> Result<()> {
let base_account = &mut ctx.accounts.base_account;
base_account.total_gifs = 0;
Ok(())
...
5
votes
1
answer
403
views
How to efficiently transfer NATIVE SOL to a program accepting WRAPPED SOL?
I am writing a program in which the accepted payment MUST be from a token account. Anchor context snippet here:
pub struct Payment<'info> {
#[account(mut)]
pub buyer_token_account: ...
5
votes
2
answers
254
views
How to pass an uninitialized PDA account to a CPI to initialize it without getting AccountNotInitialized error
I have ProgramA and ProgramB. ProgramA initializes an account using InstructionA. When ProgramB uses a CPI to call instructionA I'm getting AccountNotInitialized error.
I'm using the following code:
...
5
votes
2
answers
2k
views
How do I fix 'please minimize large stack variables' error while testing my anchor program?
I'm getting the following error using Anchor 0.25.0 Stack offset of 11792 exceeded max offset of 4096 by 7696 bytes, please minimize large stack variables initializing my accounts on local testing.
I'...
5
votes
1
answer
402
views
What is the recommended way to provision an instance of solana-test-validator with a set of accounts and mints?
I'm curious what the recommended way is to provision an instance of solana-test-validator with a 'known state', consisting of a few accounts and mints.
We use this 'known state' in our local ...
5
votes
1
answer
173
views
How to read account data in non owner program
If I deploy a program P1 which initialises a new account A1 and update the rvalue to for instance 9
#[derive(Accounts)]
pub struct Initialize<'info> {
#[account(init, payer = signer, ...
5
votes
3
answers
658
views
how to fetch list of all pda accounts in frontend? like sale account instance to display in the market? or should i be fetching from token account?
i have a sale order account defined like this..
#[account]
pub struct Order {
pub creator: Pubkey,
pub mint_key: Pubkey,
pub memo: String,
pub price: u64,
pub bump: u8,
}
And this ...
5
votes
1
answer
538
views
Why is it possible to initialise a program account to my wallet address, stopping me from signing anything in future?
This was an accidental discovery when playing with the Solana Playground, but it surprised me and feels like a bug. I'm wondering why it works this way.
Example: https://beta.solpg.io/...
4
votes
2
answers
2k
views
Is there a way to estimate the transaction size?
Currently to get the size of a transaction I have to do the following
const tx = new Transaction().add(...)
const { blockhash } = await connection.getLatestBlockhash();
tx.recentBlockhash = blockhash;
...
4
votes
3
answers
496
views
Program cannot deserialize borsch serialized instruction from typescript client
I am trying to write a client code in typescript for a contract written in vanilla rust. I am unable to serialize an instruction such that it can be deserialized by the program
#[derive(Debug, ...
4
votes
3
answers
2k
views
Confusion between Token Account and Associated Token Account?
I am new to Solana dev. I am confused by the answers on StackExchange. The token mint holds information about a specific mint. An associated token account is an account linked to a user so the user ...
4
votes
1
answer
295
views
What is the data size of a wallet account?
I want to calculate the minimum balance for Rent-except and have found code like this:
const { Connection, clusterApiUrl, LAMPORTS_PER_SOL } = require('@solana/web3.js');
const connection = new ...
4
votes
2
answers
246
views
Why do some token accounts own themselves?
I was under the impression that accounts owned by users owned a set of token accounts which each represent one distinct token that they own - meaning token accounts would only be owned by a user. For ...
4
votes
1
answer
85
views
Can you modify a non-PDA account's data when you know its private key [closed]
I am gathering some information about the advantages of PDA accounts over accounts that have private keys. While the obvious one is that there is the potential vulnerability that you can withdraw ...
4
votes
1
answer
435
views
How to use realloc to increase account space in Anchor?
Lets say that I have the following account struct for my instruction:
#[derive(Accounts)]
pub struct IncreaseDataSize<'info> {
#[account(
mut,
seeds = [signer.key().as_ref()],...
4
votes
1
answer
262
views
Why does `solana program show <address>` and `solana accounts <address>` return different values for the `data length` and `balance` fields
Originally asked in the SolanaU discord.
Is there a reason why the Solana CLI will return different values for solana program show and solana account?
solana program show ...
4
votes
2
answers
105
views
Can I fetch data from within the program? [closed]
If I generate PDA within my program like this:
let (pda,_) = Pubkey::find_program_address(&[
&(game_data.id).to_be_bytes(),
game_data.key().as_ref()
], &ID);
Can I fetch the field,...
4
votes
1
answer
943
views
Access Phantom account with Solana CLI
I have created a Solana account with Phantom App. How can I access my Phantom account details and balance via through Solana CLI? Please list down all the libraries also required for it.
4
votes
1
answer
358
views
Can I call 'get account info' in instruction in rust?
I'd like to get account info from pubkey of account in instruction method in rust.
like this,
// instructions.rs
fn instruction_method() -> Instruction {
let pubkey: Pubkey;
let account_info =...
4
votes
3
answers
576
views
"Signature verification failed" error while creating an account
I am trying to create an account but I get an error while creating it.
const provider = anchor.AnchorProvider.env();
anchor.setProvider(provider);
const newAccountKeypair = anchor.web3.Keypair....
4
votes
1
answer
146
views
Handle big vector containing ton of structs
I'm looking for a way to handle a big struct.
I want to understand how to create an account storing more than 10_000 structs inside is possible.
Is there a simple way to do it? Or should I have to ...
4
votes
1
answer
2k
views
Calculating Solana Fees
How are fees calculated in Solana ?
4
votes
1
answer
142
views
Why do we use lifetime parameter when we create an account struct?
This is an example of account struct in an anchor project.
#[derive(Accounts)]
pub struct Create<'info>{
#[account(init,payer=user,space=264)]
pub calculator:Account<'info,Calculator&...
4
votes
1
answer
128
views
Transaction history is empty on NFT mint account
I have this NFT's mint address on devnet where no transaction history can be found: E4xbqXvy1tHjfBwJpR5WT4h3xMXgmb5UX7wkoChUPB4g
I'm confused how this is happened, because I also have the transaction ...
4
votes
1
answer
155
views
How does borsh serialize updated data back into account?
In the code from the project here, the processing logic is as follows:
pub struct Processor {}
impl Processor {
pub fn process_instruction(
_program_id: &Pubkey,
accounts: &...
4
votes
1
answer
151
views
How to write on-chain program leveraging the "Address Lookup Table" feature
I would like to write an on-chain program that leverages the "Address Lookup Table" feature (https://github.com/solana-labs/solana/issues/26391). I would like the on-chain program to de-...
3
votes
3
answers
321
views
Extending struct fields in a PDA and ensuring compatibility
I need to extend the fields I have within a PDA. Some accounts are already live, so I want those to still be compatible with the new layout. As a simple illustrative example, consider this account ...
3
votes
1
answer
2k
views
How to close a PDA account?
#[account(
init,
seeds =
[
b"config".as_ref(),
mint.key().as_ref(),
],
bump,
payer = sender,
space = 90
...
3
votes
2
answers
436
views
Anchor: does an account being initialized (not PDA) need to be a signer?
I have the following accounts in an instruction:
#[derive(Accounts)]
pub struct CreatePixel<'info> {
#[account(init, payer=user, space=Pixel::LEN)]
pub pixel: Account<'info, Pixel>,...
3
votes
1
answer
641
views
Can Solana Accounts be accessed by any Solana Program using its address?
If I have a deployed Solana Program which creates some Solana accounts for storing data in it. Can these Solana accounts be accessed by any other Solana program using the account addresses? I am ...
3
votes
1
answer
112
views
Undefined owner in token balances structure even though there's an owner
When calling getParsedTransaction, in the tokenBalances here I get an undefined owner even though the token account has an owner?
Here is example
getting the transaction info for ...
3
votes
1
answer
277
views
In what context is the hash of a ed25519 public key used as an address?
According to the docs, a Solana address is one of the following:
an ed25519 public key
a program-derived account address (32byte value forced off the ed25519 curve)
a hash of an ed25519 public key ...
3
votes
1
answer
70
views
How to allocate `Optional` accounts on heap?
I am trying to use optional accounts and since there are many accounts, i tried boxing them. But looks like the derive macro panics when i try to box the optional accounts like below.
escrow_account: ...
3
votes
1
answer
406
views
Why do we convert accounts to AccountInfo?
I have this rust function
pub fn purchase_ticket(ctx: Context<PurchaseTicket>, lottery_id: u32) -> Result<()> {
let lottery = &mut ctx.accounts.lottery;
let ticket = &...
3
votes
1
answer
801
views
what is anchor #[instruction()] macro?
I have this code:
#[derive(Accounts)]
#[instruction(campaign_id: u32)]
pub struct CreateCompaign<'info> {
#[account(
mut,
seeds = [SEED.as_bytes(), &campaign_id....
3
votes
3
answers
177
views
Can't initialize PDA cause of seed constraint, even though seeds are correct
I am trying to create a PDA with variable seeds like this
#[derive(Accounts)]
#[instruction(i: u8)]
pub struct SendRequest<'info> {
#[account(mut)]
pub owner: Signer<'info>,
#...
3
votes
1
answer
272
views
How to save an array of 10,000 public keys on an account
Is there a scalable way to save an array of public keys ? I'm building a raffle type of system using Anchor framework, where we would want to save all public keys in an array, so we can pick a winner ...
3
votes
1
answer
210
views
Creating a data account per user of your program?
I have the following use case. Users can enter a lottery by bidding a certain amount. The program keeps track of the users and their bid amounts in its own data account (just an array of pub keys ...
3
votes
1
answer
298
views
Can you create accounts with less lamports than the rent-exempt minimum?
Accounts on Solana are considered rent-exempt if they hold at least the cost of their rent for 2 years (based on the size of the account's data).
Is it possible to create an account that's not rent-...
3
votes
1
answer
354
views
How do you repopen a closed account?
If an account has been closed with the following anchor context:
#[account(
mut,
close = user,
seeds = [
SEED_SCHEMA.as_bytes(),
&user.key().as_ref()...
3
votes
2
answers
432
views
Why did I get access to the wallet?
I generated a 12-word BIP39 word sequence using a third-party library (not from the solana tools).
Next, I went to the phantom mobile application and added a wallet by restoring it using a 12-word ...
3
votes
1
answer
624
views
Getting transaction info on account changes using JS
Using JS, how would I go about getting transaction information on transactions that affect the balance of a specific account?
I've been able to listen for account changes with the following code, but ...