# Pull Request Description
## Related Issue
Fixes # (issue number)
## Changes Made
This PR adds the following changes:
<!-- List the key changes made in this PR -->
- Query Voltr vault and strategies balances
- Withdraw from Voltr strategies
- Deposit into Voltr strategies
## Implementation Details
<!-- Provide technical details about the implementation -->
- utilises Voltr's SDK `@voltr/sdk` to instantiate a `VoltrClient`
- find and fetch relevant accounts to create instructions using
`VoltrClient`
## Transaction executed by agent
<!-- If applicable, provide example usage, transactions, or screenshots
-->
Example transaction:
https://solana.fm/tx/GnUd38TMhtBYNv29nNAyESEWLwjHhUW6hraNrPE3RTF6LtdqNtnoBBqEKptT5JaWqv6TiFp6MeooUa9Rt7vMAu9?cluster=mainnet-alpha
Demo: https://x.com/voltrxyz/status/1875204418465059189
## Prompt Used
<!-- If relevant, include the prompt or configuration used -->
Tested on autonomous mode.
```
async function runAutonomousMode(agent: any, config: any, interval = 10) {
console.log("Starting autonomous mode...");
let iterations = 0;
while (true) {
try {
const evenThought =
"1. Get the total amount and amount for each strategy of a Voltr vault: 3ab3KVY9GbDbUUbRnYNSBDQqABTDup7HmdgADHGpB8Bq. " +
"2. Take note of the strategies id with the their respective amount. " +
"3. Calculate the sum of all strategy amounts. " +
"4. Subtract that sum from the vault total to get the excess amount. " +
"5. Indicate the excess amount and the strategy id with the lowest amount.";
const oddThought =
"Using the latest excess amount, if it is 0 then do nothing. " +
"Else if it is more than 0, deposit the excess amount into the lowest strategy and vault: 3ab3KVY9GbDbUUbRnYNSBDQqABTDup7HmdgADHGpB8Bq.";
const thought = iterations % 2 === 0 ? evenThought : oddThought;
const stream = await agent.stream(
{ messages: [new HumanMessage(thought)] },
config,
);
for await (const chunk of stream) {
if ("agent" in chunk) {
for (const message of chunk.agent.messages) {
console.log(message.content);
}
} else if ("tools" in chunk) {
for (const message of chunk.tools.messages) {
console.log(message.content);
}
}
console.log("-------------------");
}
iterations++;
await new Promise((resolve) => setTimeout(resolve, interval * 1000));
} catch (error) {
if (error instanceof Error) {
console.error("Error:", error.message);
}
process.exit(1);
}
}
}
```
## Additional Notes
<!-- Any additional information that reviewers should know -->
## Checklist
- [x] I have tested these changes locally
- [x] I have updated the documentation
- [x] I have added a transaction link
- [x] I have added the prompt used to test it
# Pull Request Description
## Changes Made
This PR adds the following changes:
- Implemented NFT creation with integrated liquidity pools in 3land
create NFT functionality
## Implementation Details
- Each NFT can be created with an associated liquidity pool
- Liquidity pools are identified by a unique poolName per wallet
- Multiple NFT editions can be created for the same liquidity pool
- Liquidity pools support any SPL token
- The SPL token used for the liquidity pool matches the NFT edition
token
- Sale proceeds (primary and secondary) are directed to the liquidity
pool
- Royalties from sales are automatically added to the liquidity pool
- NFT holders can burn their NFT to reclaim their investment
- Wallet addresses are restricted to one liquidity pool per poolName per
SPL token
## Transaction executed when testing
Example transactions created using solana-agent-kit:
1. First NFT edition with pool (pool 1):
https://dev.3.land/item/fXajTSwvrFCzaSL9mKE1KtTZ9wpChHC8egeXarMx3oD
2. Second edition with same pool (pool 1):
https://dev.3.land/item/8LdRScybmPQXkDdF2wafMSQ159ZDwckG1Pq7EkwGMFwW
3. Third edition with new pool (same SPL token):
https://dev.3.land/item/4HogLfgrgMYPpDqQK6Kw4kyGVtc7iu5ftBZuVRiPLm94
4. Fourth edition with new pool (different SPL token):
https://dev.3.land/item/FmPSPrNw9AoCCvUceHoXHuaFp2nC7GZEqyBsGpWEsMDM
## Additional Notes
- All features have been thoroughly tested and verified working
- The implementation maintains backward compatibility with existing NFT
creation
- Liquidity pool operations are atomic and maintain consistent state
- Pool naming restrictions prevent confusion and potential conflicts
## Checklist
- [X ] I have tested these changes locally
- [ X] I have updated the documentation
- [X ] I have added a transaction link
# Pull Request Description
This PR is the langchain implementation of #207
## Changes Made
This PR adds the following changes:
<!-- List the key changes made in this PR -->
- This PR adds files that implement the drift actions in a way
compatible with langchain
## Implementation Details
<!-- Provide technical details about the implementation -->
- Just a quick conversion of the drift actions to langchain tool classes
## Transaction executed by agent and prompt used
<!-- If applicable, provide example usage, transactions, or screenshots
-->
Example transaction:
<img width="998" alt="Screenshot 2025-01-15 at 17 43 42"
src="https://github.com/user-attachments/assets/25f12c26-0f1a-470a-a566-028a54adf995"
/>
<img width="998" alt="Screenshot 2025-01-15 at 17 43 27"
src="https://github.com/user-attachments/assets/b07c6089-f5fc-4498-9d5a-14c5698c21a9"
/>
<img width="998" alt="Screenshot 2025-01-15 at 17 43 02"
src="https://github.com/user-attachments/assets/69067241-bb22-429b-9021-024c526ec25f"
/>
## Additional Notes
<!-- Any additional information that reviewers should know -->
## Checklist
- [x] I have tested these changes locally
- [ ] I have updated the documentation
- [ ] I have added a transaction link
- [x] I have added the prompt used to test it
# Pull Request Description
## Related Issue
This doesn't fix any pre-existing issue, but is an attempt to claim the
bring your own idea bounty.
## Changes Made
This PR adds the following changes:
<!-- List the key changes made in this PR -->
- when token address is not supplied get_balance returns an object
containing the amount of sol an address has but also the balance of each
of it's non-TOKEN2022 token accounts
-
## Implementation Details
<!-- Provide technical details about the implementation -->
- While reading the Solana RPC docs I came across an endpoint that
fetches all the token accounts owned by an address returns their
balances along with that.
- So with this data I thought why not just implement get_balance to be
more comprehensive than just simple `number` values
## Transaction executed by agent
<!-- If applicable, provide example usage, transactions, or screenshots
-->
Example transaction:
<img width="610" alt="Screenshot 2025-01-11 at 18 10 20"
src="https://github.com/user-attachments/assets/f242af3c-8703-42aa-8a65-a6dd9b369392"
/>
## Prompt Used
<!-- If relevant, include the prompt or configuration used -->
```
What's my balance
```
## Additional Notes
<!-- Any additional information that reviewers should know -->
## Checklist
- [x] I have tested these changes locally
- [ ] I have updated the documentation
- [ ] I have added a transaction link
- [x] I have added the prompt used to test it
# Pull Request Description
## Related Issue
Fixes # (issue number)
## Changes Made
This PR adds the following changes:
<!-- List the key changes made in this PR -->
-
-
## Implementation Details
<!-- Provide technical details about the implementation -->
-
-
## Transaction executed by agent
<!-- If applicable, provide example usage, transactions, or screenshots
-->
Example transaction:
## Prompt Used
<!-- If relevant, include the prompt or configuration used -->
```
```
## Additional Notes
<!-- Any additional information that reviewers should know -->
## Checklist
- [ ] I have tested these changes locally
- [ ] I have updated the documentation
- [ ] I have added a transaction link
- [ ] I have added the prompt used to test it
# Pull Request Description
## Related Issue
Fixes#157
## Changes Made
This PR adds the following changes:
<!-- List the key changes made in this PR -->
- Added tool to parse Transactions in human readable format
- Get all assets owned by a Public key
- Create , Get and Delete Webhooks for real time notifications
- Send a transaction with priority fee using Helius API
## Implementation Details
<!-- Provide technical details about the implementation -->
- Used Helius API's to implement the changes
## Transaction executed by agent
<!-- If applicable, provide example usage, transactions, or screenshots
-->






Transaction id for priority fee
```34iEaLyeQc71rrv5bwV49LkfxbsYqFeWS3rV7wxKM2MHiNrfj9QxkdfFjkquBdneubyp6PsNVATRSit4ATseGKtH```
## Prompt Used
<!-- If relevant, include the prompt or configuration used -->
```parse this transaction for me
5Mp5eVCdjY2i4uk7oEs3kKSqNab49cauuJANuQhiNq9tWKPRe7QmS65amhTGzYfMGfoNB64kY3Jjzrh8Fy4D8FV6```
```give me assets owned by this address BVdNLvyG2DNiWAXBE9qAmc4MTQXymd5Bzfo9xrQSUzVP limit 3```
```send 0.0001 sol to Eo2ciguhMLmcTWXELuEQPdu7DWZt67LHXb2rdHZUbot7 with
high priority```
## Additional Notes
<!-- Any additional information that reviewers should know -->
## Checklist
- [x] I have tested these changes locally
- [ ] I have updated the documentation
- [x] I have added a transaction link
- [x] I have added the prompt used to test it