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