pinocchio-token-2022

Crates.iopinocchio-token-2022
lib.rspinocchio-token-2022
version0.1.0
created_at2025-08-06 14:25:41.241878+00
updated_at2025-08-27 13:56:24.208234+00
descriptionPinocchio helpers to invoke Token-2022 program instructions
homepage
repositoryhttps://github.com/anza-xyz/pinocchio
max_upload_size
id1783838
size63,683
Fernando Otero (febo)

documentation

README

pinocchio-token-2022

pinocchio-token-2022

Overview

This crate contains pinocchio helpers to perform cross-program invocations (CPIs) for SPL Token-2022 instructions.

Each instruction defines a struct with the accounts and parameters required. Once all values are set, you can call directly invoke or invoke_signed to perform the CPI.

Instruction that are common to both SPL Token and SPL Token-2022 programs expect the program address, so they can be used to invoke either token program.

This is a no_std crate.

Note: The API defined in this crate is subject to change.

Examples

Initializing a mint account:

// This example assumes that the instruction receives a writable `mint`
// account; `authority` is a `Pubkey`.
// The SPL Token program is being invoked.
InitializeMint {
    mint,
    rent_sysvar,
    decimals: 9,
    mint_authority: authority,
    freeze_authority: Some(authority),
    token_program: Pubkey::from_str("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")
}.invoke()?;

Performing a transfer of tokens:

// This example assumes that the instruction receives writable `from` and `to`
// accounts, and a signer `authority` account.
// The SPL Token-2022 is being invoked.
Transfer {
    from,
    to,
    authority,
    amount: 10,
    token_program: Pubkey::from_str("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb")
}.invoke()?;

License

The code is licensed under the Apache License Version 2.0

Commit count: 283

cargo fmt