Papyrus
Papyrus is an ONFT1155 contract that's a 1-n NFT and can be transferred across chains.
Overview
Papyrus
is an ONFT1155
contract that's a 1-n NFT and can be transferred across chains. It's basically SBT
so can't be transferred to another wallet by the owner. It can be transferred to same wallet address on another chain or by an authorized transferrer
(e.g. Obelisk
) to another wallet.
Buying a Papyrus
A papyrus is needed for staking 1 NFT when entering a draw in Obelisk. To get papyrus NFTs, you can call buy()
with _quantity * price
ETH. FYI, price
can be updated by owner
.
The amount paid is transferred to treasury
, which can also be updated by owner
.
Sending Across Chain
Papyrus NFTs can be sent across chain via sendFrom()
or sendBatchFrom()
. For more information on how ONFT1155 works, refer to https://layerzero.gitbook.io/docs/evm-guides/code-examples/onft-overview/1155.
Functions
price(): Returns the price of a Papyrus NFT.
treasury(): Returns the address to which the price of Papyrus is transferred.
isTransferrer(address _transferrer): Checks if a given address is a transferrer. Returns true if the address is a transferrer.
buy(uint256 _quantity): Allows users to buy Papyrus NFTs. The transaction is reverted if the exact amount is not sent. The price is transferred to the treasury.
updatePrice(uint256 _price): Allows the owner to update the price of the NFT.
updateTreasury(address _treasury): Allows the owner to update the treasury address.
updateTransferrer(address _transferrer, bool _access): Allows the owner to update a transferrer's access rights.
Last updated