🥷
Samurai Protocol
  • DISCLAIMER
  • Samurai Financial
  • 1. What is Samurai and how does it work ?
    • 1.1 - What is Samurai?
    • 1.2 - What is the total supply of HNR tokens ?
    • 1.3 - Now, how does it actually work ?
    • 1.4 - How does Samurai differ from RING?
    • 1.5 - Why is SAMURAI on the Fantom (FTM) ?
    • 1.6 - Is Metamask the only wallet compatible for now ? What about TrustWallet ?
    • 1.7 - Do I need to install a VPS?
    • 1.8 - Do I need to keep my computer running ?
    • 1.9 - Where can I see the size of the liquidity pool ?
    • 1.10 - Smart Contract Functionality
  • 2. Understanding the NODES
    • 2.1 How does the Lottery system work?
    • 2.2 How does sliding tax work?
    • 2.3 - How much does a node cost ?
    • 2.4 - Can nodes be transferred from one wallet to another ?
    • 2.5 - Are these real nodes ?
    • 2.6 - Why do you call these "nodes" ?
    • 2.7 - I don’t see my rewards every 4 or 8 hours. Is there a problem ?
    • 2.8 - What happens if I don't claim my rewards every time ?
  • Tokenomics
  • Governance
  • Samurai AI
  • Vaults
  • MultiChain ZenGarden
  • Levels
  • Sambot
  • ZenEstate
  • Governance Proposals
    • Samurai Governance
    • Initiate and adopt protocol level governance
    • SIP-1: Adopt and enforce an incentivised LP staking mechanism - Zen Garden
  • [EXTENSION] SIP-1: Adopt and enforce an incentivised LP staking mechanism - Zen Garden
  • SIP-2: Implement a Samurai native OTC NFT solution
  • [EXTENSION] SIP-2: Implement a Samurai native OTC NFT solution
  • SIP-3: Implement, adopt and enforce Samurai Vaults
  • SIP-4: Implement, adopt and enforce Samurai Multichain ZenGarden
  • SIP-5: Implement, adopt and enforce Samurai Levels
  • SIP-6: Replenish Samurai Levels rewards
  • SIP-7: Conduct an OTC NFT acquisition event
  • SIP-8: Retroactive funding
  • SIP-9: Expand MultiChain ZenGarden
  • SIP-10: Conduct an OTC NFT distribution event
  • SIP-11: Temporarily pause Samurai Levels
  • SIP-12: Replenish Samurai Node NFT's rewards
  • SIP-13: Levels v2 Product feature set Ideation
  • SIP-14: Deploy and fund Samurai Governance Vault
  • SIP-15: Implement, adopt and enforce Samurai Levels v2
  • SIP-16: Conduct ‘Settlement & Release’ initiative
  • SIP-17: Expand ‘Settlement & Release’ initiative
  • SIP-18: Implement, adopt and enforce an update to Samurai Node NFT RPC Endpoints
  • SIP-19: Implement, adopt and enforce Samurai Chat
  • SIP-20: Refine Samurai Levels Parameters and Conditions
  • SIP-21: Retroactive funding 2.0
  • SIP-22: Conduct an OTC NFT acquisition event
  • SIP-23: Conduct an OTC NFT distribution event
  • SIP-24: Enact a Samurai Governance Vault Conversion
  • SIP-25: Refine Samurai Chat Parameters
  • SIP-26: Replenish Samurai Levels v2 rewards
  • Articles / Announcements
    • Samurai is here!
    • Honour
    • News, updates, migration and plans for Honour
    • Clearing the air and moving onwards
    • The path towards sustainability
Powered by GitBook
On this page

SIP-2: Implement a Samurai native OTC NFT solution

Motivation

Currently, the only secondary NFT market that is compatible with Samurai Node NFTs is tofuNFT, where Samurai Node NFTs and all of its tiers (Buke, Musha, and Mononofu) can be acquired and exchanged. While utilizing tofuNFT was a wise decision at the specific point in time, there are a few problems that need to be fixed.

  1. The inability to acquire or trade Samurai Node NFTs in large amounts is a major drawback and a demotivating issue for many of Samurai's active users who wish to be able to acquire, get rid of, or swap Samurai Node NFTs fast, effectively, and at scale.

  2. Instead of using xHNR, the protocol's native governance token, the TofuNFT market and its collections use FTM (Fantom). The utility of the xHNR token would be increased by following this proposal as the Samurai Node NFTs would be acquired and disposed using the protocol's native xHNR governance token.

  3. Because TofuNFT is an outside service provider, Samurai becomes more dependent on that party's technological capabilities, reputational standing, and terms of service. Samurai's goal is to be decentralized and function autonomously and independenťy, hence the project should support alternatives that promote no dependency on central middlemen and intermediaries.

  4. Samurai Node NFTs are subject to a 3% royalty collection on TofuNFT. Samurai might have more control over its royalties by using its own, independently owned service.

  5. Users are unable to conveniently and readily manage and control their Samurai Node NFTs within the primary point of engagement with the protocol (the Samurai dApp) because of the existing solution's inadequate integration capability.

Specification

Maintain and keep the Samurai Node NFT collection on tofuNFT while enhancing it with a second, independent, autonomous OTC NFT substitute that makes use of the xHNR governance token. All of the aforementioned pain issues would be addressed and resolved by the OTC NFT marketplace alternative, which would rely on a set of smart contracts that are described in more detail below.

With the help of the suggested smart contracts, OTC NFT events might happen inside of Samurai's dApp at a pre-set moment when the contract would be buying Samurai Node NFTs from its users at a set xHNR price. By selecting many Node NFTs at once, the solution would allow users to sell and dispose of their Node NFTs at scale within the dApp interface in exchange for xHNR tokens. The protocol would purchase Node NFTs using its treasury, and the treasury would then hold the purchased NFTs. To purchase Node NFTs and promote the suggested OTC NFT alternative, 3 000 000 xHNR tokens should be issued to the Treasury for the acquisition purposes.

The protocol should then sell the acquired Node NFTs that are held by the treasury to new or existing users within Samurai's dApp at a predetermined, scheduled time, at a fixed xHNR price, using the smart contracts. By choosing several NFTs at once, users would be able to quickly acquire Samurai's Node NFTs in exchange for xHNR tokens at scale. This could also potentially lead to a lower acquisition price by removing the need to pay fees associated with using the tofuNFT platform and would substantially increase the utility of the xHNR governance token.

The pricing of the Node NFTs within the OTC NFT solution should be set in xHNR token terms and according to the floor price of the NFTs on TofuNFT -~ 15% to incentivise and encourage the use of Samurai’s OTC NFT alternative.

The tokens would be kept by the treasury if there is a positive price difference between the purchase price and the selling price of Node NFTs, which might be viewed as an xHNR-native alternative to a royalty collection.

Setting precise acquisition and selling goals, while taking into account the state of the treasury, current activity (volatility and volume) in the tofuNFT market, can all be used to predict the length of OTC NFT events and the numbers of Node NFTs attained.

I have developed the following smart contracts which take into account and are in line with the practices and technological stack observed in the protocol’s verified and publicly accessible smart contracts, codebase and governance proposals.

The proposed smart contract/Solidity code:

pragma solidity 0.8.10;

contract SamuraiOTC { uint256 public buyPrice; uint256 public sellPrice;

IERC721 public hnrNodes; IERC20 public xHnr;

constructor( uint256 _buyPrice, uint256 _sellPrice, address _hnrNodes, address _xHnr ) { buyPrice = _buyPrice; sellPrice = _sellPrice; hnrNodes = IERC721(_hnrNodes); xHnr = IERC20(_xHnr); }

function sell(uint256[] memory _tokenIds) public { address nodeSeller = msg.sender; uint256 amount = uint256(_tokenIds.length) * sellPrice; batchTransfer(_tokenIds, true); xHnr.transfer(nodeSeller, amount); }

function buy(uint256[] memory _tokenIds) public { address nodeBuyer = msg.sender; uint256 amount = uint256(_tokenIds.length) * buyPrice; xHnr.transferFrom(nodeBuyer, address(this), amount); batchTransfer(_tokenIds, false); }

function batchTransfer(uint256[] memory _tokenIds, bool isSell) public { uint256 length = _tokenIds.length; address sender = msg.sender; address contractAddress = address(this);

isSell
  ? hnrNodes.transferFrom(sender, contractAddress, _tokenIds)
  : hnrNodes.transferFrom(contractAddress, sender, _tokenIds);

} }

Previous[EXTENSION] SIP-1: Adopt and enforce an incentivised LP staking mechanism - Zen GardenNext[EXTENSION] SIP-2: Implement a Samurai native OTC NFT solution

Last updated 2 years ago