> 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")
;
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.caviarnine.com/products-floop/lsu-pool/manifests.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
