Cuentas y Direcciones
Cuentas y direcciones: la unidad de estado en Solana. Los resultados aparecen en la misma sección de código: comentarios // en la misma línea cuando son cortos, bloques // multilínea debajo de la muestra cuando no lo son. Las muestras en cadena son Rust; las muestras del cliente usan TypeScript cuando se indica.
Analiza una clave pública base58.
use solana_sdk :: pubkey :: Pubkey ;
use std :: str :: FromStr ;
let system = Pubkey :: from_str ( "11111111111111111111111111111111" ) . unwrap ();
system . to_string () . starts_with ( "111" ) // true
Describe las cuentas para una instrucción.
// AccountMeta::new(pubkey, is_signer)
// AccountMeta::new_readonly(pubkey, is_signer)
Privilegios de cuenta en la instrucción.
// meta.is_signer / meta.is_writable flags
// el runtime aplica el firmante y la mutabilidad
Dirección conocida del programa del sistema.
// solana_sdk::system_program::id()
// 11111111111111111111111111111111
Las cuentas necesitan suficientes lamports para estar exentas de alquiler.
// Rent::default().minimum_balance(data_len)
Solo el programa propietario puede cambiar los datos de la cuenta.
// account.owner == program_id para el estado del programa
Los programas son cuentas ejecutables.
// account.executable == true para cuentas de programa
Saldo en lamports (1 SOL = 1e9 lamports).
// 1_000_000_000u64 // 1 SOL
Los datos de la cuenta son un vector de bytes.
Genera un nuevo par de claves (cliente/herramientas).
// let kp = Keypair::new();
// kp.pubkey()
⚠️ Importante: No copies y pegues código de Solana en tu aplicación sin realizar tu propia auditoría de calidad/seguridad. Los bloques de código son solo ejemplos genéricos para aprendizaje y experimentación en entornos de desarrollo/pruebas, y puede que no sean adecuados para tu aplicación. Este sitio está en fase BETA y en evaluación continua de calidad, por lo que puede contener errores de código. No se ofrece ninguna garantía: consulta los términos .
Direcciones derivadas de CreateWithSeed (legado).
// Pubkey::create_with_seed(&base, seed, &owner)
Se aplican límites prácticos de tamaño de datos de cuenta (históricamente restricciones de la clase 10MB).
// mantener el estado pequeño; preferir PDAs por entidad
Lee la sysvar Clock para obtener la hora de la ranura/unix.
// Clock::get()?.unix_timestamp
Parámetros de la sysvar Rent.
// Rent::get()?.lamports_per_byte_year
El primer metadato de cuenta suele ser el pagador de tarifas/firmante.
// el pagador de tarifas de la transacción debe firmar y ser escribible
Versiones de Stack: Esta página fue escrita para Agave 4.1.1 , Solana CLI 3.0.10 , Anchor 0.32.1 , Rust 1.91.1 , y @solana/kit 7.0.0 .