This is a library of Rust scripts for specific purposes:
- Generate a new wallet
- Create an SPL token
- Mint an SPL token
- Get an associated token balance
- Get the creation date of an account
- Get the owner of an NFT
- List NFTs in wallet
- Subscribe to events
- Fetch onchain Anchor IDL
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.
cargo run --bin new_wallet
| Code
Generates a new wallet and prints the pubkey, Base58 private key, and JSON private key.
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. |
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. |
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. |
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. |
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. |
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. |
cargo run --bin pubsub
| Code
Listens to events from slotSubscribe
.
Environment Variable | Note |
---|---|
WS_URL | e.g. wss://api.mainnet-beta.solana.com |
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 |