> For the complete documentation index, see [llms.txt](https://erc1000-docs.polarise.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://erc1000-docs.polarise.org/erc-1000-eip/6.-extensibility-and-others.md).

# 6. Extensibility and Others

The proposed ERC-1000 is fully compatible with both ERC-20 and ERC-721. All extensions based on ERC-20 and ERC-721 can be applied to ERC-1000. Additionally, ERC-1000-specific functionalities can be further extended through inheritance. Furthermore, to facilitate the processing of on-chain data based on ERC-1000, on-chain events can be scanned or monitored and selected data can be saved off-chain as follows:

| No. | Event Name                                                                                                  | Description                                                                                                                                                                                                                                                                           |
| --- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1   | event Trade(address indexed account, TradeType indexed tradeType, uint256\[] tokenId)                       | Triggered when a random or specific ERC-721 NFT purchase is made                                                                                                                                                                                                                      |
| 2   | event Borrow(address indexed borrower, uint256\[] tokenId, uint256 endBlock, uint256 price, uint256 amount) | Triggered when a user obtains a loan of ERC-20 tokens using an ERC-721 NFT as a collateral; price greater than 0 indicates consignment of ERC-721 NFT; amount represents the ERC-20 tokens received by the user after deducting fees based on the consignment terms and interest rate |
| 3   | event Redeem(address indexed payer, uint256\[] tokenIds, uint256\[] amounts)                                | Triggered when the consigned ERC-721 NFT is redeemed; amount represents the ERC-20 tokens to be paid for redeeming the NFT                                                                                                                                                            |
| 4   | event Purchase(address indexed payer, uint256\[] tokenIds, uint256\[] amounts)                              | Triggered when the consigned ERC-721 NFT is purchased; amount represents the ERC-20 tokens paid for purchasing the NFT                                                                                                                                                                |
