# SPL Token Helper Crate
**Status:** ✅ Initial Version Released ✅
This crate simplifies the process of creating SPL tokens on the Solana blockchain by providing a user-friendly abstraction layer. Our goal is to streamline the token creation process with minimal setup while also offering flexibility for advanced users. You can use the following functions:
- `mint_simple`: Mint SPL tokens with associated metadata.
- `transfer_simple`: Transfer SPL tokens between accounts.
- `burn_simple`: Burn SPL tokens from an account.
## Features
- **Easy SPL Token Creation:** Quickly create and manage SPL tokens with metadata in just a few steps.
- **Manual Setup Options:** Advanced users can manually configure token parameters and metadata through the provided functions.
- **Token Transfer Support:** Transfer SPL tokens between accounts using a simplified interface.
- **Metadata Integration:** Automatically creates token metadata using the `mpl_token_metadata` program, with support for custom metadata attributes like name, symbol, URI, and seller fees.
- **Token Burning:** Burn SPL tokens from an account with ease.
- **Developer-Friendly:** The crate is modular and well-documented, making it easy to integrate into existing Solana projects.
## Usage
### Minting Tokens with Metadata
The `mint_simple` function allows you to mint SPL tokens and automatically create the associated metadata.
```rust
use spl_token_helper::mint_simple;
use anchor_lang::solana_program::account_info::AccountInfo;
// Mint SPL tokens with metadata
let result = mint_simple(
"TokenName".to_string(),
"TKN".to_string(),
"https://example.com/token-metadata".to_string(),
500, // 5% seller fee
payer_account_info,
token_metadata_program_info,
update_authority_info,
metadata_account_info,
mint_authority_info,
system_program_info,
rent_sysvar_info,
token_program_info,
mint_account_info,
to_account_info,
owner_account_info,
&[&signer_seeds],
1000 // Mint 1000 tokens
).unwrap();
```
### Transferring SPL Tokens
The `transfer_simple` function lets you transfer SPL tokens between accounts using a minimal setup.
```rust
use spl_token_helper::transfer_simple;
// Transfer SPL tokens between accounts
let result = transfer_simple(
mint_account_info,
token_program_account_info,
source_pubkey,
destination_account_info,
authority_account_info,
500, // Transfer 500 tokens
&[&signer_seeds],
).unwrap();
```
### Burning SPL Tokens
The `burn_simple` function allows you to burn (destroy) SPL tokens from a specified account.
```rust
use spl_token_helper::burn_simple;
// Burn SPL tokens from an account
let result = burn_simple(
mint_account_info,
token_program_id,
source_pubkey,
authority_account_info,
500, // Burn 500 tokens
&[&signer_seeds],
).unwrap();
```
## Example Implementations
You can find example implementations of each version of this crate in the [spl-simplified-demo](https://github.com/Chirag-Jani/spl-simplified-demo) repository. Check specific commits for version numbers included in the messages, such as "feat: demo v0.2.8".
## Contributing
This project is under active development, and we welcome contributions from the community! If you're interested in contributing, please feel free to:
- Fork the repository
- Open issues or feature requests
- Submit pull requests with improvements
## Call to Action
If you find this project useful or want to stay updated on its progress, please consider:
- ⭐ Starring this repository
- 👁️🗨️ Following the updates
- 🍴 Forking the repo to explore and contribute
Your support and feedback will help us build a better tool for the Solana developer community!
---
We look forward to your contributions! 🚀