<aside> 💡
Who is this guide for?
This guide is for teams that need to integrate Omnivaults into their application or platform. Through the Kiln API and onchain transactions, you can programmatically access Omnivaults’ information and power deposit and withdrawals.
If you’re trying to directly allocate funds into Omnivaults from your wallet (or wallet infra), request our team the User Guide for Allocators.
</aside>
<aside> ⚠️
Please note: the API specs and onchain methods detailed here are subject to change. Any feedback you have on the following will shape their final version, keep it coming! Also, bear in mind that Omnivault Sandbox is not yet fully audited. Therefore, use only test funds.
</aside>
Integrate Kiln Omnivaults in your application
<aside> 💡
Public omnivaults are visible in the Explore catalog in Kiln Dashboard. You can also select an asset manager to craft bespoke Omnivaults.
</aside>
https://kiln.share.arcade.software/share/nMz65VXdgqSn2Wt8ctvz
1️⃣ Once connected to Kiln Dashboard, navigate to the Explore section.
2️⃣ Analyze & compare strategies - assets, yields, TVL growth…
<aside> 👈
Follow the step-by-step guide using the interactive demo on the left
</aside>
https://kiln.share.arcade.software/share/5NNnebOhgiTIuMrovvIC
3️⃣ Deploy your Omnivault to start distribution*—it will be added to your organization at this stage*
4️⃣ Manage your Omnivaults from the Manage section*—view Omnivaults; change their name, status, fees, etc*
<aside> 👈
Follow the step-by-step guide using the interactive demo on the left
</aside>
Now that you've deployed omnivaults in your organization and have your API credentials, this section covers how to query omnivault information for display in your frontend or monitoring dashboards.
<aside> 📌
/omnivaultsRetrieve all omnivaults contracts deployed for your organization and their associatated information (APY, deposit assets, icons, protocols)
</aside>
curl --location '<https://api.testnet.kiln.fi/omnivaults>' \\
--header 'Authorization: Bearer kiln_testnet-api-key'
<aside> 🛠
Route: /omnivaults?chain_ids=&status=&asset_manager=&omnivault_ids=
Query-params:
chain_ids: parameter to specify the chains you want to query onasset_ids: parameter to specify the assets you want to query onstatus:filter by deployment statusesasset_manager: true/false - Filter by whether the omnivault points to a multivehicleomnivault_ids : parameter to specify the omnivaults you want to query on
</aside>Use:
name for user-friendly labelingdescription for frontend tooltips or onboarding UIstatus to dynamically include/exclude vaults (between active and deposit_paused)<aside> 💡
Example: Skip paused omnivaults in deposit flow
if (omnivault.status !== 'deposit_paused') {
showVaultInDepositUI(omnivault)
} else {
showVaultInReportingOnly(omnivault)
}
</aside>
As a user, I can view available omnivaults and their details on my connected chain to assess which yield strategy I want exposure to
1️⃣ Focus the experience on enabling yield on a specific asset rather in some case even abstracting away the underlying DeFi protocol, show the users how much they could be generating as rewards
2️⃣ By default show the best APY to your users in the selection screen, you can include
3️⃣ Use the protocol_icons to make the UI more attractive and display to the user some information on how he is generating this yield.

<aside> 📌
/omnivaults/positions?Retrieve user positions in your organization's omnivaults
</aside>
curl --location '<https://api.testnet.kiln.fi/omnivaults/positions?wallets=0x991c468AbcE2b4DD627a6210C145373EbABdd186&omnivault_ids=8453_0x390d077f8e60ffb58805420edc635670aa4f34c3>' \\
--header 'Authorization: Bearer kiln_testnet-api-key'
<aside> 🛠
</aside>
As a User, I see my positions and rewards, so that I can assess my performance.
1️⃣ You can completely abstract away the fact that there is a yield bearing token that represent the user position and show the user position in the underlying asset. In this case we decide to display the current_balance in USDT yet still show the shares_balance the user hold in his wallet.
2️⃣ total_rewards represents the rewards generated in the underlying asset so here USDC
3️⃣ pending_deposits represents deposit assets that are still pending
4️⃣ pending_redeem represents redeem assets that are still pending
<aside> 📌
</aside>
curl --location '[<https://api.testnet.kiln.fi/omnivaults/operations?wallets=0x991c468AbcE2b4DD627a6210C145373EbABdd186&omnivault_ids=8453_0x390d077f8e60ffb58805420edc635670aa4f34c3>](<https://api.testnet.kiln.fi/v1/defi/operations?wallets=0x991c468AbcE2b4DD627a6210C145373EbABdd186&vault_ids=8453_0x390d077f8e60ffb58805420edc635670aa4f34c3>)' \\
--header 'Authorization: Bearer kiln_testnetapikey'
<aside> 🛠
</aside>
<aside> 💡
</aside>
Now that we have access to all the reporting data, we can start interacting with the omnivaults. As highlighted above, all these interactions are done through STEAM queries.