# Fee Vaults

## We have a dedicated page to taking advantage of fees:

<https://www.caviarnine.com/fee-vaults><br>

## Component Addresses

The FLOOP Ecosystem has 2 component vaults:

```shellscript
component_rdx1cqvfnpl0ld49rhwyhu4v3r05962yeplmasggtzlu9r2dmh7amx6vpn
component_rdx1crmhkatyjrw0070nsusdm4adwr5s3eaysmevxlvaxx6fspxkwdhlua
```

The CAVIAR Ecosystem has no fee vaults set up yet as no products have been launched.

```
<coming soon>
```

## Useful Component Arbitrage Methods

There are three methods anyone can call to get some useful information about arbitrage opportunities:

### get\_swap\_vault\_amount

This method returns the amount of TOKENS of a specific RESOURCE\_ADDRESS that are available when swapped for FLOOP. This amount increases over time as protocol fees are collected from the [Aggregator](/products-floop/aggregator.md), [LSU Pool](/products-floop/lsu-pool.md), [Shape Liquidity](/products-floop/shape-liquidity.md) and the [Order Book](/products-floop/order-book.md).\
\
manifest:

```
CALL_METHOD 
    Address("{COMPONENT_ADDRESS_FEE_VAULTS}") 
    "get_swap_vault_amount"
    Address("{RESOURCE_ADDRESS}");
```

### get\_swap\_price

This method tells you how much FLOOP you need to send for a given RESOURCE\_ADDRESS to receive the amount of TOKENS from the RESOURCE\_ADDRESS vault, (returned from the *get\_swap\_vault\_amount* above). This amount of FLOOP decreases over time, encouraging users to empty the fee vaults.\
\
manifest:

```
CALL_METHOD
    Address("{COMPONENT_ADDRESS_FEE_VAULT}") 
    "get_swap_price"
    Address("{RESOURCE_ADDRESS}");
```

### swap

Finally if you want to send the amount of FLOOP (calculated from get\_swap\_price) for the amount of TOKENS (calculated from *get\_swap\_price*) for RESOURCE\_ADDRESS then you want to do a swap!\
\
manifest:

```
CALL_METHOD 
    Address("{YOUR_ACCOUNT_ADDRESS}") 
    "withdraw" 
    Address("resource_rdx1t5pyvlaas0ljxy0wytm5gvyamyv896m69njqdmm2stukr3xexc2up9")
    Decimal("{AMOUNT_OF_FLOOP}");
        
TAKE_FROM_WORKTOP
    Address("resource_rdx1t5pyvlaas0ljxy0wytm5gvyamyv896m69njqdmm2stukr3xexc2up9") 
    Decimal("{AMOUNT_OF_FLOOP}")
    Bucket("my_bucket_of_floop");

CALL_METHOD
    Address("{COMPONENT_ADDRESS_FEE_VAULT}")
    "swap"
    Bucket("my_bucket_of_floop")
    Address("{RESOURCE_ADDRESS}");
        
CALL_METHOD 
    Address("{YOUR_ACCOUNT_ADDRESS}")
    "deposit_batch" 
    Expression("ENTIRE_WORKTOP");
```

## Handy Api Endpoint

To make things a little simpler, we've added an API endpoint where you can see all the resource vaults, their values and the redemptions amounts (FLOOP or CAVIAR) here:

```
https://api-core.caviarnine.com/v1.0/fee_vaults
```

Currently this endpoint is in real time (and we'd like to leave it like that) but if it get's abused we'll cache it every X minutes which would be a shame.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.caviarnine.com/ecosystem/fee-vaults.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
