> For the complete documentation index, see [llms.txt](https://docs.caviarnine.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.caviarnine.com/ecosystem/fee-vaults.md).

# 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.
