# Smart Contract

ELYFI has various contract interactions centered on the Money Pool Contract. Several tokens are issued or destroyed to indicate the status of participants, and all issuance and burn processes are carried out through the Money Pool Contract.

### MoneyPool&#x20;

This is the main contract that interacts with the protocol. Most of the financial activities take place based on this contract.

* borrowRealAssetCollateralized()
* borrowCryptocurrencyCollateralized()
* repayRealAssetCollateralizedBorrow()
* repayCryptocurrencyCollateralizedBorrow()
* supplyReserve()
* withdrawReserve()
* liquidateRealAssetCollateral
* liquidateCryptocurrencyCollateral
* ...

### ABToken

A type of token that records information about real asset-backed bonds and acts as bonds on-chain. It complies with the NFT standard, and this token can be deposited in the Money Pool to execute a loan contract.

* ERC721 Interfaces
* purchaseSecuritizedABToken()
* refundSecuritizedABToken()
* claimInterest()
* ...

### AToken

This is issued when an investment is made in a single asset (bond). It is a means to indicate that one has invested in securitized ABTokens. It follows the ERC20 standard.

* ERC20 Interfaces

### LToken

When funds are deposited in the Money Pool, they are issued as a means to indicate that one has deposited the funds in the Money Pool. It complies with the ERC20 standard. The balance total automatically increases as interest accrues.

* ERC20 Interfaces
* implicitBalance()

### DToken

When borrowing cryptoassets from the Money Pool as collateral against assets, this token is used as a means to express this. It is similar to the ERC20 token standard, but does not provide any function related to the transmission of tokens.

Check out <https://github.com/elysia-dev/elyfi/tree/master/docs> for more information.<br>


---

# 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-v1.elyfi.world/eng/architecture/smart-contract.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.
