# FraktalNFT.sol

### Overview

\
Modified ERC-1155 contract

* The contract is upgradeable, it contrains few predefined values to prevent bugs. The predefined value (enumberable) is set for AddressSet
* Contains events like LockedSharesForTransfer and unLockedSharesForTransfer for locking and unlocking shares of NFT for transfer.
* event ItemSold defines buyer address, index used, payer’s address, revenue from the NFT sale, amount.
* Fraktionalized event defines holder’s address, minter’s address, index
* Defraktionalized event contains holder’s address, index
* MajorityValueChanged new value
* Deployment initialisation - deploys contract with creator’s address, NFT revenue address, contains initializer, calldata uri.\
  User functions:
* fractionalise NFT, must contain address where the NFT gets fractionalized, tokenId of the NFT itself. Requires tokenId, balanceOf the token-NFT itself is defined as “not owner”, fraktionalilzed, indexUsed has to contain tokeId
* defraktionalized - index has to be set to 10000 in order to defraktionalilze NFT
* if the majority of fractions value is 10000 it shows incorrect value as the owner can’t own 10000 fraktions
* the owner address is not approved to burn the NFT after it gets sold
* lockSharesTransfer - checks number of shares on the address from message sender,
* unlocks shares transfer when the item is sold
* Revenue payment contains memmory of owners addresses of the NFT, hold values of the NFT and distributes the NFT fractions between owners
* Payment splitter - distributes revenue from NFT to fraction owners
* sellItem function process transfers without value, this function is being used with non fungible transfers - NFTs
* Getter functions: getRevenue,getFraktions,getLockedShares,getLockedToTotal,getStatus,getFraktionsIndex


---

# 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.fraktal.io/developers/contracts/fraktalnft.sol.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.
