Skip to content

Conversation

@pawelpolak2
Copy link
Contributor

Description

Updates the Vaults.fyi provider to use it's new v2 API which updates old action schemas and adds new actions, now using the Vaults.fyi SDK for better type safety.

Tests

Chatbot: langchain-cdp-smart-wallet-chatbot
Network: base
Setup: topped up with USDC and ETH

Prompt: "find me the best APY vault on base" (vaults)

The best APY vault on the Base network is the "40acres USDC Vault" with a 7-day APY of 13.24%. It offers yield from interest paid by borrowers who take USDC loans against Aerodrome veNFT position collateral. The vault currently has about $9.75 million TVL.

You can check it out here: https://app.vaults.fyi/opportunity/base/0xB99B6dF96d4d5448cC0a5B3e0ef7896df9507Cf5

Prompt: "what are my current positions" (positions)

You currently have a position in the "40acres USDC Vault" on the Base network. Here are the details:
- Asset: USDC
- Position value in asset: Approximately 19.9983 USDC
- Vault token balance: 10,960 VAULT tokens
- APY: 13.23%

If you want to know more details or take any action, please let me know.

Prompt: "can you withdraw half of my position?" (transaction_context, execute_step)

To proceed with withdrawing half of your position from the 40acres USDC Vault, I need to calculate the amount to withdraw.
Your vault token balance is 10,960 VAULT tokens. Half of this would be 5,480 VAULT tokens.
I will now check the withdrawal steps and then execute the withdrawal for half the position.
-------------------
I have withdrawn half of your position from the 40acres USDC Vault. If you need anything else, please let me know.

Prompt: "What was this vaults tvl like throughout october 2025? Prepare a table" (vault_historical_data)

Here is the TVL of the 40acres USDC Vault on the Base network for each day in October 2025 (values are in USD):

| Date       | TVL (USD)     |
|------------|---------------|
| 2025-10-01 | 8,866,510     |
| 2025-10-02 | 8,361,328     |
| 2025-10-03 | 8,811,696     |
| 2025-10-04 | 9,068,609     |
| 2025-10-05 | 9,118,786     |
| 2025-10-06 | 9,472,685     |
| 2025-10-07 | 9,537,216     |
| 2025-10-08 | 10,378,223    |
| 2025-10-09 | 10,065,999    |
| 2025-10-10 | 10,460,026    |
| 2025-10-11 | 9,226,108     |
| 2025-10-12 | 7,968,612     |
| 2025-10-13 | 9,077,846     |
| 2025-10-14 | 9,033,714     |
| 2025-10-15 | 9,343,940     |
| 2025-10-16 | 9,675,426     |
| 2025-10-17 | 9,053,392     |
| 2025-10-18 | 9,809,080     |
| 2025-10-19 | 9,627,220     |
| 2025-10-20 | 9,657,997     |
| 2025-10-21 | 9,369,515     |
| 2025-10-22 | 9,283,646     |
| 2025-10-25 | 10,591,750    |
| 2025-10-26 | 10,718,594    |
| 2025-10-27 | 10,813,673    |
| 2025-10-28 | 10,901,582    |
| 2025-10-29 | 10,702,289    |
| 2025-10-30 | 10,000,230    |
| 2025-10-31 | 11,592,661    |

Let me know if you want the data in a different format or if you'd like further details.

Prompt: "how does its apy compare to the benchmarks?" (historical_benchmark_apy)

During October 2025, the 40acres USDC Vault had a 7-day interval APY ranging approximately from 13.45% to 16.77%.

For the same period, the benchmark APY on the Base network (USD benchmark) ranged approximately from 5.67% to 6.19%.

In summary, the vault's APY significantly outperformed the benchmark for October 2025, offering more than double the returns compared to the benchmark average. If you want, I can provide daily detailed comparison data as well.

Prompt: "what is the benchmark apy currently?" (benchmark_apy)

The current benchmark APY on the Base network (USD benchmark) is approximately:
- 1-day APY: 4.73%
- 7-day APY: 4.87%
- 30-day APY: 5.12%

If you want any further information or assistance, please let me know.

Prompt: "do i have any rewards to claim?" (rewards_context)

You have claimable rewards of IPOR Fusion Points (about 417.42 x 10^-12 tokens) on the Gnosis network. If you'd like, I can help you claim them. Let me know!

Prompt: "yeah sure lets claim them!" (claim_rewards) (couldn't claim because I only had some on gnosis but payload was generated properly)

It seems there was an issue with claiming the rewards on the Gnosis network due to network limitations of my current wallet connection. I am unable to claim rewards on that network directly at this time.

You may need to claim these rewards using a wallet connected to the Gnosis network yourself. If you want, I can provide details or guide you through the process.

Let me know how you'd like to proceed.

Prompt: "what assets do i have?" (idle_assets)

You currently have the following assets in your wallet:

1. USD Coin (USDC) - Approximately 9.999 USDC
2. Ether (ETH) - Approximately 0.0005 ETH

If you want to manage any of these assets or need more information, feel free to ask.

Prompt: "can you check 0x047e7CFA2702f95DE867A86a74CaF60E2DdBFF72 returns on the vault 0x444868B6e8079ac2c55eea115250f92C2b2c4D14 on arbitrum?" (total_returns)

The returns for the address 0x047e7CFA2702f95DE867A86a74CaF60E2DdBFF72 on the vault 0x444868B6e8079ac2c55eea115250f92C2b2c4D14 on Arbitrum are approximately 1.806459 USDC. 

If you want more details or need help with something else, just let me know.

Prompt: "can you check its action history on the vault?" (user_events)

The action history for the address 0x047e7CFA2702f95DE867A86a74CaF60E2DdBFF72 on the vault 0x444868B6e8079ac2c55eea115250f92C2b2c4D14 on Arbitrum includes:

- A deposit on June 3, 2025, at block 343572914
  - Asset amount deposited: 48.549609 USDC
  - LP token amount received: 40.675498 dUSDC
  - Share price at the time: 1.1936
  - Transaction hash: 0x2920d82b96757e42784661671468f8bd22aa3d7842128a9e19fc7c67be45cb7e

If you need more information or want to check something else, just let me know.

Checklist

A couple of things to include in your PR for completeness:

  • Added documentation to all relevant README.md files
  • Added a changelog entry

@cb-heimdall
Copy link

cb-heimdall commented Nov 27, 2025

✅ Heimdall Review Status

Requirement Status More Info
Reviews 1/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

@github-actions github-actions bot added documentation Improvements or additions to documentation action provider New action provider typescript labels Nov 27, 2025
@pawelpolak2
Copy link
Contributor Author

If a reviewer needs an API key for review I'm happy to share one.

@pawelpolak2 pawelpolak2 requested a review from phdargen December 9, 2025 14:35
@phdargen
Copy link
Contributor

phdargen commented Dec 9, 2025

Thanks for the update @pawelpolak2, looks good to me!

Could you please also update the typescript/agentkit README accordingly?

@phdargen
Copy link
Contributor

phdargen commented Dec 9, 2025

If a reviewer needs an API key for review I'm happy to share one.

Carson gave me an API key but it doesnt seem to work

@phdargen
Copy link
Contributor

phdargen commented Dec 9, 2025

In vaultsfyiActionProvider.ts , the constructor has a default value, but the factory function requires the config.
Suggest changing to:

export const vaultsfyiActionProvider = (config: VaultsfyiActionProviderConfig = {}) =>
  new VaultsfyiActionProvider(config);

@phdargen
Copy link
Contributor

phdargen commented Dec 9, 2025

Most actions require network as a mandatory schema parameter, would suggest to make it optional and default to connected network

@phdargen
Copy link
Contributor

phdargen commented Dec 9, 2025

Token amounts are in atomic units. In my experience this often doesn't work well and the LLM wrongly converts the units.
I'd suggest to have token amounts in human-readable format for both tool input and output and convert internally from/to atomic units as needed.

There is already a (currently unused) parseAssetAmount function implemented in utils that might be useful

@pawelpolak2
Copy link
Contributor Author

Most actions require network as a mandatory schema parameter, would suggest to make it optional and default to connected network

I think that would make sense for the transaction endpoints but most are readonly and are going to be used for analytics across all chains and i think making network optional might confuse the agent more than help as it actually is required for vault identification.

@pawelpolak2
Copy link
Contributor Author

Token amounts are in atomic units. In my experience this often doesn't work well and the LLM wrongly converts the units. I'd suggest to have token amounts in human-readable format for both tool input and output and convert internally from/to atomic units as needed.

There is already a (currently unused) parseAssetAmount function implemented in utils that might be useful

I crafted the prompts so the agent understands that its all in atomic units and i found that it actually does really well with parsing those! I tried to avoid parsing them for it since it requires me to know the decimal of asset/LP token which would require additional calls and also i found that atomic units works better for the agent when LP tokens are scaled. Anyway I would keep it in atomic if you don't mind. lmk what you think 😁

@pawelpolak2
Copy link
Contributor Author

If a reviewer needs an API key for review I'm happy to share one.

Carson gave me an API key but it doesnt seem to work

I gave Carson a new key. The other one was in fact invalid, my bad.

@phdargen
Copy link
Contributor

Thanks for the updates @pawelpolak2, I tested it out and the actions all work smoothly! Indeed, the prompts make a good job at guiding the LLM how to deal with the units, so we can leave it as is.

Let's get this in @CarsonRoscoe

@CarsonRoscoe CarsonRoscoe merged commit 02f9291 into coinbase:main Dec 12, 2025
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action provider New action provider documentation Improvements or additions to documentation typescript

Development

Successfully merging this pull request may close these issues.

4 participants