pinocchio-pubkey

Crates.iopinocchio-pubkey
lib.rspinocchio-pubkey
version0.3.0
created_at2024-09-25 10:55:40.586731+00
updated_at2025-07-24 21:54:38.394251+00
descriptionCompanion pubkey helpers for Pinocchio
homepage
repositoryhttps://github.com/anza-xyz/pinocchio
max_upload_size
id1386243
size11,846
(anza-team)

documentation

README

pinocchio-pubkey

pinocchio-pubkey

Companion Pubkey helpers for pinocchio.

Overview

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() helpers

It also defines a from_str helper that takes a &str and returns the correspondent Pubkey value.

Examples

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.

  1. Creating a Pubkey constant value from a static &str:
use pinocchio::pubkey::Pubkey;

pub const AUTHORITY: Pubkey = pinocchio_pubkey::pubkey!("7qtAvP4CJuSKauWHtHZJt9wmQRgvcFeUcU3xKrFzxKf1");
  1. Declaring the program address of a program (usually on your lib.rs):
pinocchio_pubkey::declare_id!("Ping111111111111111111111111111111111111111");
  1. Creating a Pubkey from a &str:
let address = String::from("7qtAvP4CJuSKauWHtHZJt9wmQRgvcFeUcU3xKrFzxKf1");
let owner = pinocchio_pubkey::from_str(&address);

License

The code is licensed under the Apache License Version 2.0

Commit count: 283

cargo fmt