| Crates.io | pinocchio-pubkey |
| lib.rs | pinocchio-pubkey |
| version | 0.3.0 |
| created_at | 2024-09-25 10:55:40.586731+00 |
| updated_at | 2025-07-24 21:54:38.394251+00 |
| description | Companion pubkey helpers for Pinocchio |
| homepage | |
| repository | https://github.com/anza-xyz/pinocchio |
| max_upload_size | |
| id | 1386243 |
| size | 11,846 |
pinocchio-pubkey
Companion Pubkey helpers for pinocchio.
This crate provides two convenience macros to resolve Pubkeys at compile time:
pubkey!: takes a pubkey value as a base58 &str and generates its correspondent Pubkey (byte array)declare_id!: takes a pubkey value as a base58 &str (usually representing a program address) and generates an ID constant, check_id() and id() helpersIt also defines a from_str helper that takes a &str and returns the correspondent Pubkey value.
Once the project is built the first time with cargo build-sbf, a new keypair is automatically generated. A public key can be retrieved with:
solana-keygen pubkey ./target/deploy/your_program-keypair.json
Instead of the autogenerated keypair, a vanity key can be used. You can move the vanity keypair to ./target/deploy/your_program-keypair.json.
Remember to back up the keypair file securely, it is necessary for deploy the program.
Public keys can be embedded into the program code in the following ways.
Pubkey constant value from a static &str:use pinocchio::pubkey::Pubkey;
pub const AUTHORITY: Pubkey = pinocchio_pubkey::pubkey!("7qtAvP4CJuSKauWHtHZJt9wmQRgvcFeUcU3xKrFzxKf1");
lib.rs):pinocchio_pubkey::declare_id!("Ping111111111111111111111111111111111111111");
Pubkey from a &str:let address = String::from("7qtAvP4CJuSKauWHtHZJt9wmQRgvcFeUcU3xKrFzxKf1");
let owner = pinocchio_pubkey::from_str(&address);
The code is licensed under the Apache License Version 2.0