Skip to content

hodlwarden/solana-rust-examples

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Solana Scripts

This is a library of Rust scripts for specific purposes:

The scripts are found in the src/bin folder. They can be configured using environment variables, which are documented below.

Open an issue if you have any requests or suggestions.


New wallet

cargo run --bin new_wallet | Code

Generates a new wallet and prints the pubkey, Base58 private key, and JSON private key.


Create an SPL token

cargo run --bin create_spl | Code

Creates a new SPL token mint account.

Environment Variable Note
RPC_URL e.g. https://api.mainnet-beta.solana.com
SIGNER_KEYPAIR Base58 encoded keypair, to pay for the transaction.
MINT_KEYPAIR Base58 encoded keypair, representing the new mint account.

Mint SPL tokens

cargo run --bin mint_spl | Code

Mints 10,000 SPL tokens from a specified mint to the associated token account of a specified wallet.

Environment Variable Note
RPC_URL e.g. https://api.mainnet-beta.solana.com
SIGNER_KEYPAIR Base58 encoded keypair, which has mint authority.
MINT_ACCOUNT_PUBKEY The pubkey address of the SPL Token mint account.
RECEIVER_PUBKEY The pubkey address of the wallet you want to fund with the tokens.

Get token balance

cargo run --bin associated_token_balance | Code

Prints the balance of an associated token account, for a specified wallet and mint.

Environment Variable Note
RPC_URL e.g. https://api.mainnet-beta.solana.com
WALLET_PUBKEY The pubkey address of the wallet that owns the tokens.
MINT_ACCOUNT_PUBKEY The pubkey address of the SPL Token mint account.

Get account creation timestamp

cargo run --bin creation_date | Code

Fetches and prints the creation timestamp of a specified account.

Environment Variable Note
RPC_URL e.g. https://api.mainnet-beta.solana.com
ACCOUNT_PUBKEY The pubkey address of the account you want to introspect.

Get NFT owner

cargo run --bin nft_owner | Code

Prints the wallet address that owns a specified NFT.

Environment Variable Note
RPC_URL e.g. https://api.mainnet-beta.solana.com
MINT_ACCOUNT_PUBKEY The pubkey address of the SPL Token mint account.

List NFTs in wallet

cargo run --bin list_nfts | Code

Fetches and prints the mint pubkeys of every NFT in the specified wallet.

Environment Variable Note
RPC_URL e.g. https://api.mainnet-beta.solana.com
WALLET_PUBKEY The pubkey address of the wallet that owns the NFTs.

Subscribe to events

cargo run --bin pubsub | Code

Listens to events from slotSubscribe.

Environment Variable Note
WS_URL e.g. wss://api.mainnet-beta.solana.com

Fetch onchain Anchor IDL

cargo run --bin fetch_idl | Code

Fetches an Anchor IDL from a program address.

Environment Variable Note
WS_URL e.g. wss://api.mainnet-beta.solana.com
PROGRAM_ID The program address pubkey. e.g. whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc

About

Demonstrating how to use Rust to interact with the Solana blockchain.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%