mirror of
https://github.com/d0zingcat/solana-agent-kit.git
synced 2026-05-15 15:10:25 +00:00
138 lines
3.1 KiB
Markdown
138 lines
3.1 KiB
Markdown
# Solana Agent Kit
|
|
|
|
A powerful toolkit for interacting with the Solana blockchain, providing easy-to-use functions for token operations, NFT management, and trading. Now integrated with LangChain for enhanced functionality.
|
|
|
|
## Features
|
|
|
|
- 🪙 Token Operations
|
|
- Deploy new SPL tokens
|
|
- Transfer SOL and SPL tokens
|
|
- Check token balances
|
|
|
|
- 🖼️ NFT Management
|
|
- Deploy NFT collections
|
|
- Mint NFTs to collections
|
|
- Manage metadata and royalties
|
|
|
|
- 💱 Trading
|
|
- Integrated Jupiter Exchange support
|
|
- Token swaps with customizable slippage
|
|
- Direct routing options
|
|
|
|
- 🔗 LangChain Integration
|
|
- Utilize LangChain tools for enhanced blockchain interactions
|
|
- Access a suite of tools for balance checks, transfers, token deployments, and more
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
npm install solana-agent-kit
|
|
```
|
|
|
|
## Quick Start
|
|
|
|
```typescript
|
|
import { SolanaAgentKit, createSolanaTools } from 'solana-agent-kit';
|
|
|
|
// Initialize with private key and optional RPC URL
|
|
const agent = new SolanaAgentKit(
|
|
'your-private-key',
|
|
'https://api.mainnet-beta.solana.com'
|
|
);
|
|
|
|
// Create LangChain tools
|
|
const tools = createSolanaTools(agent);
|
|
```
|
|
|
|
## Usage Examples
|
|
|
|
### Deploy a New Token
|
|
|
|
```typescript
|
|
import { deploy_token } from 'solana-agent-kit';
|
|
|
|
const result = await deploy_token(
|
|
agent,
|
|
9, // decimals
|
|
1000000 // initial supply
|
|
);
|
|
|
|
console.log('Token Mint Address:', result.mint.toString());
|
|
```
|
|
|
|
### Create NFT Collection
|
|
|
|
```typescript
|
|
import { deploy_collection } from 'solana-agent-kit';
|
|
|
|
const collection = await deploy_collection(agent, {
|
|
name: "My NFT Collection",
|
|
uri: "https://arweave.net/metadata.json",
|
|
royaltyBasisPoints: 500, // 5%
|
|
creators: [
|
|
{
|
|
address: "creator-wallet-address",
|
|
percentage: 100
|
|
}
|
|
]
|
|
});
|
|
```
|
|
|
|
### Swap Tokens
|
|
|
|
```typescript
|
|
import { trade } from 'solana-agent-kit';
|
|
import { PublicKey } from '@solana/web3.js';
|
|
|
|
const signature = await trade(
|
|
agent,
|
|
new PublicKey('target-token-mint'),
|
|
100, // amount
|
|
new PublicKey('source-token-mint'),
|
|
300 // 3% slippage
|
|
);
|
|
```
|
|
|
|
## API Reference
|
|
|
|
### Core Functions
|
|
|
|
#### `deploy_token(agent, decimals?, initialSupply?)`
|
|
Deploy a new SPL token with optional initial supply.
|
|
|
|
#### `deploy_collection(agent, options)`
|
|
Create a new NFT collection with customizable metadata and royalties.
|
|
|
|
#### `mintCollectionNFT(agent, collectionMint, metadata, recipient?)`
|
|
Mint a new NFT as part of an existing collection.
|
|
|
|
#### `transfer(agent, to, amount, mint?)`
|
|
Transfer SOL or SPL tokens to a recipient.
|
|
|
|
#### `trade(agent, outputMint, inputAmount, inputMint?, slippageBps?)`
|
|
Swap tokens using Jupiter Exchange integration.
|
|
|
|
#### `get_balance(agent, token_address)`
|
|
Check SOL or token balance for the agent's wallet.
|
|
|
|
## Dependencies
|
|
|
|
The toolkit relies on several key Solana and Metaplex libraries:
|
|
|
|
- @solana/web3.js
|
|
- @solana/spl-token
|
|
- @metaplex-foundation/js
|
|
- @metaplex-foundation/mpl-token-metadata
|
|
- @metaplex-foundation/umi
|
|
|
|
## Contributing
|
|
|
|
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
|
|
## License
|
|
|
|
ISC License
|
|
|
|
## Security
|
|
|
|
This toolkit handles private keys and transactions. Always ensure you're using it in a secure environment and never share your private keys. |