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 |