> 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/products-floop/lsu-pool/manifests.md).

# Manifests

You don't need CaviarNine to interact with any smart contract. All you need is the manifest and to submit it the Radix network. An easy way to submit is already supplied by Radix via their dashboard: <https://console.radixdlt.com/transaction-manifest>

## LSU Pool Component Address:

Being the LSU Pool is just one component here is it's address which has been added in the below manifests.

```
component_rdx1cppy08xgra5tv5melsjtj79c0ngvrlmzl8hhs7vwtzknp9xxs63mfp
```

## LSULP Resource Address:

This resource address below is the address for the liquidity token of the LSU Pool

```
resource_rdx1thksg5ng70g9mmy9ne7wz0sc7auzrrwy7fmgcxzel2gvp8pj0xxfmf
```

## LSU Credit Receipt Resource Address:

This resource address below is the address for the credit receipt NFT token of the LSU Pool

```
resource_rdx1nt3frmqu4v57dy55e90n0k3uy352zyy89vszzamvjld6vqvr98rls9
```

## Add Liquidity - No Credit Receipt

When adding liquidity using this method you will get back two buckets:

* LSULP - The liquidity token
* Credit Receipt NFT - A new soulbound credit receipt NFT that tracks your credits

```
CALL_METHOD 
    Address("{ACCOUNT}") 
    "withdraw" 
    Address("{LSU_TOKEN}")
    Decimal("{AMOUNT}")
;
TAKE_ALL_FROM_WORKTOP
    Address("{LSU_TOKEN}") 
    Bucket("lsu_tokens")
;

CALL_METHOD 
    Address("component_rdx1cppy08xgra5tv5melsjtj79c0ngvrlmzl8hhs7vwtzknp9xxs63mfp") 
    "add_liquidity" 
    Bucket("lsu_tokens")
    Enum<0u8>()
;

CALL_METHOD 
    Address("{ACCOUNT}") 
    "deposit_batch" 
    Expression("ENTIRE_WORKTOP")
;
```

## Add Liquidity - Using Credit Receipt

When adding liquidity using this method you will get back 1 bucket of LSULP tokens and update your soulbound Credit receipt token with the additional LSU credit. LSU -> LSULP\
\
The following manifest requires your Credit Receipt NFT ID from your wallet. If you don't have one use the method above.

```
LSU_POOL_CREDIT_RECEIPT_ID - Get this from your wallet
```

Manifest:

```
CALL_METHOD 
    Address("{ACCOUNT}") 
    "withdraw" 
    Address("{LSU_TOKEN}")
    Decimal("{AMOUNT}")
;
TAKE_ALL_FROM_WORKTOP
    Address("{LSU_TOKEN}") 
    Bucket("lsu_tokens")
;
CALL_METHOD
    Address("{ACCOUNT}") 
    "create_proof_of_non_fungibles"
    Address("resource_rdx1nt3frmqu4v57dy55e90n0k3uy352zyy89vszzamvjld6vqvr98rls9")
    Array<NonFungibleLocalId>(
        NonFungibleLocalId("{LSU_POOL_CREDIT_RECEIPT_ID}")
    )
;
CREATE_PROOF_FROM_AUTH_ZONE_OF_NON_FUNGIBLES
    Address("resource_rdx1nt3frmqu4v57dy55e90n0k3uy352zyy89vszzamvjld6vqvr98rls9")
    Array<NonFungibleLocalId>(
        NonFungibleLocalId("{LSU_POOL_CREDIT_RECEIPT_ID}")
    )
    Proof("credit_proof")
;

CALL_METHOD 
    Address("component_rdx1cppy08xgra5tv5melsjtj79c0ngvrlmzl8hhs7vwtzknp9xxs63mfp") 
    "add_liquidity" 
    Bucket("lsu_tokens")
    Enum<1u8>(
        Proof("credit_proof")
    )
;

CALL_METHOD 
    Address("{ACCOUNT}") 
    "deposit_batch" 
    Expression("ENTIRE_WORKTOP")
;
```

## Remove Liquidity - No Credit Receipt:

Using this method will remove liquidity from the pool. Find more about the credit receipt [here](/products-floop/lsu-pool/credit-receipt.md) LSULP -> LSU

```
CALL_METHOD 
    Address("{ACCOUNT}")  
    "withdraw" 
    Address("resource_rdx1thksg5ng70g9mmy9ne7wz0sc7auzrrwy7fmgcxzel2gvp8pj0xxfmf")
    Decimal("{AMOUNT}")
;
TAKE_ALL_FROM_WORKTOP
    Address("resource_rdx1thksg5ng70g9mmy9ne7wz0sc7auzrrwy7fmgcxzel2gvp8pj0xxfmf") 
    Bucket("lp_tokens")
;

CALL_METHOD 
    Address("component_rdx1cppy08xgra5tv5melsjtj79c0ngvrlmzl8hhs7vwtzknp9xxs63mfp") 
    "remove_liquidity" 
    Bucket("lp_tokens")
    Address("{LSU_TOKEN}")
    Enum<0u8>()
;

CALL_METHOD 
    Address("{ACCOUNT}")  
    "deposit_batch" 
    Expression("ENTIRE_WORKTOP")
;
```

## Remove Liquidity - Using Credit Receipt

Using this method will remove liquidity from the pool. By presenting your credit receipt, if you have credits you will not get charged up to the credit amount for that LSU you have requested. Find more about the credit receipt [here](/products-floop/lsu-pool/credit-receipt.md) LSULP -> LSU

```
CALL_METHOD 
    Address("{ACCOUNT}")  
    "withdraw" 
    Address("resource_rdx1thksg5ng70g9mmy9ne7wz0sc7auzrrwy7fmgcxzel2gvp8pj0xxfmf")
    Decimal("{AMOUNT}")
;
TAKE_ALL_FROM_WORKTOP
    Address("resource_rdx1thksg5ng70g9mmy9ne7wz0sc7auzrrwy7fmgcxzel2gvp8pj0xxfmf") 
    Bucket("lp_tokens")
;
CALL_METHOD
    Address("{ACCOUNT}")
    "create_proof_of_non_fungibles"
    Address("resource_rdx1nt3frmqu4v57dy55e90n0k3uy352zyy89vszzamvjld6vqvr98rls9")
    Array<NonFungibleLocalId>(
        NonFungibleLocalId("{LSU_POOL_CREDIT_RECEIPT_ID}")
    )
;
CREATE_PROOF_FROM_AUTH_ZONE_OF_NON_FUNGIBLES
    Address("resource_rdx1nt3frmqu4v57dy55e90n0k3uy352zyy89vszzamvjld6vqvr98rls9")
    Array<NonFungibleLocalId>(
        NonFungibleLocalId("{LSU_POOL_CREDIT_RECEIPT_ID}")
    )
    Proof("credit_proof")
;

CALL_METHOD 
    Address("component_rdx1cppy08xgra5tv5melsjtj79c0ngvrlmzl8hhs7vwtzknp9xxs63mfp") 
    "remove_liquidity" 
    Bucket("lp_tokens")
    Address("{LSU_TOKEN}")
    Enum<1u8>(
        Proof("credit_proof")
    )
;

CALL_METHOD 
    Address("{ACCOUNT}")  
    "deposit_batch" 
    Expression("ENTIRE_WORKTOP")
;
```

## Swap

How to swap on the LSU Pool

```
CALL_METHOD 
    Address("{ACCOUNT}") 
    "withdraw" 
    Address("{LSU_TOKEN}")
    Decimal("{AMOUNT}")
;
TAKE_ALL_FROM_WORKTOP
    Address("{LSU_TOKEN}") 
    Bucket("lsu_tokens")
;

CALL_METHOD 
    Address("component_rdx1cppy08xgra5tv5melsjtj79c0ngvrlmzl8hhs7vwtzknp9xxs63mfp") 
    "swap" 
    Bucket("lsu_tokens")
    Address("{LSU_PAYING}")
;

CALL_METHOD 
    Address("{ACCOUNT}") 
    "deposit_batch" 
    Expression("ENTIRE_WORKTOP")
;
```
