> For the complete documentation index, see [llms.txt](https://lorenzo-protocol.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lorenzo-protocol.gitbook.io/docs/financial-abstraction-layer/technical-design/integration-workflows/operational-details.md).

# Operational Details

## Security Arbitrage

When in collaboration, Lorenzo grants the DeFi partner the following permissions:

* Co-management permission of the on-chain vaults
* Co-management permission of the custody account(s)
* Co-management permission of the CEX account(s) or sub-account(s)

LP tokens are made non-transferable by default. If there is any fund from the DeFi partner flagged by the CEX as suspicious, Lorenzo will take the following actions for risk management:

* Coordinate with the CEX to detain the flagged suspicious fund
* Freeze the LP tokens issued for the suspicious fund
* Notify the DeFi partner about the frozen fund and LP tokens

## Query Information About the Vault

A DeFi partner can query various types of real-time information about the vault, including the yield strategy, $$NAV$$, $$UnitNAV$$, user PnL, and historical performance, through Lorenzo-provided APIs. More details are provided in the [API Documentation](/docs/financial-abstraction-layer/api-documentation.md) section.

## Deposit

1. The DeFi partner prepares the capital to be deposited into the target vault.
2. The DeFi partner calls the `approve()` method on the underlying assets, authorizing the vault to collect the proper amount of  the underlying assets.
3. The DeFi partner calls the `deposit()` method on the vault to deposit the underlying assets into the vault and get cprresponding LP tokens in return.

## Request Withdrawal

1. The DeFi partner can request to redeem all or part of its shares.
2. The DeFi partner submits a withdrawal request for the desired amount of shares through the `requestWithdraw()` method of the target vault contract.
3. The DeFi partner waits for the current settlement cycle to end and the vault's $$NAV$$ to be finalized.
4. The DeFi partner can check the withdrawal status via the Lorenzo-provided API.

## Settle Withdrawal

1. Once all withdrawal requests are confirmed, the final $$NAV$$of the vault for the current settlement cycle can be determined. The $$UnitNAV$$ of each withdrawal cycle can be checked using the contract method `periodUnitNav()`.
2. The DeFi partner can redeem their principal and profits to its original wallet address by calling the `withdraw()` method of the vault contract.
