Skip to content

Smart Contract

The processes of NFT Watch DAO are governed through a Smart Contract that has been developed by kryptokrauts, the team behind Soon.Market.

It is deployed on the account nftwatchdao on XPR Network. The source code is available on GitHub.

Secured via MultiSig

XPR Network is running on Antelope technology, which ships with an advanced permission system. In order to ensure that the nftwatchdao is not controlled by one single entity, we decided to secure the account via MultiSig.

Contract Actions

Public

  • report to report NFT collections that violates the Code of Conduct
    • Params: collection, reporter, reason
    • Reports will be stored in blacklistrep-table until reviewed by Guards
  • reqshielding to request shielding for a specific NFT collection
    • Params: collection, requester, requestMarketplace, skipBasicCheck, skipReason
    • Requires the Shielding Fee to be transferred upfront to nftwatchdao account with memo shielding
      • A certain percentage of the fee will automatically be distributed to the requestMarketplace account as defined in the globals-table
    • Allows to tell Guards to skip the Basic Check with a valid reason which should be consulted with guards upfront!
    • Reports will be stored in shieldingreq-table until reviewed by Guards

Guards Only

  • addblacklist to add NFT collections to the blacklist which haven't been reported before
    • Params: collection, guard, comment
    • A new entry will be added to the blacklist-table
    • The new blacklist entry will be logged
  • confirmrep to confirm a reported NFT collection to be added to the blacklist
    • Params: collection, guard, comment
    • The entry in the blacklistrep-table will be removed and a new entry will be added to the blacklist-table
    • The confirmation will be logged
  • rejectreport to reject a reported NFT collection to be added to the blacklist
    • Params: collection, guard, comment
    • The entry in the blacklistrep-table will be removed
    • The rejection will be logged
  • delblacklist to remove an NFT collection from blacklist
    • Params: collection, guard, comment
    • The entry in the blacklist-table will be removed
    • The deletion will be logged
  • addshielding to add NFT collections to the shieldings without requiring a request
    • Params: collection, guard, skipReason, reportCid
    • This is mainly used for collections that have already been shielded before the contract existed
    • A new entry will be added to the shieldings-table
    • The new shielding will be logged
  • confshield to confirm shielding for a requested NFT collection
    • Params: collection, guard, reportCid
    • The entry in the shieldingreq-table will be removed and a new entry will be added to the shieldings-table
    • A certain percentage of the fee will automatically be distributed to the guard account as defined in the globals-table
    • The new shielding will be logged
  • rejectshield to reject shielding for a requested NFT collection
    • Params: collection, guard, reportCid
    • The entry in the shieldingreq-table will be removed
    • A certain percentage of the fee will automatically be distributed to the guard account as defined in the globals-table
    • The rejection will be logged
  • delshielding to remove an NFT collections from shieldings
    • Params: collection, guard, comment
    • The entry in the shieldings-table will be removed
    • The deletion will be logged

MultiSig Only

  • addguard to add an authorized guard
    • Params: guard
    • The guard will be added in the list of authorizedGuards in the globals-table
  • delguard to remove an authorized guard
    • Params: guard
    • The guard will be removed from the list of authorizedGuards in the globals-table
  • addmarket to add an NFT marketplace that is eligible to allow their users to request shieldings
    • Params: marketplace
    • The marketplace will be added in the list of marketplaces in the globals-table
  • setshieldprc to change the price in XPR for shielding
    • Params: xprPrice
    • The shieldingPrice in the globals-table will be updated
  • setfeestruct to change the fee structure for rewarding guards & marketplaces
    • Params: guard, dao, market
    • The shieldingGuardFee, shieldingDaoFee & shieldingMarketFee will be updated in the globals-table