Introducing Bluwhale
  • Introducing Bluwhale
  • Architecture
    • Overview
    • ERC-7231
    • Data Authentication
    • Bluwhale Link
    • Data Provider
    • Third-party Verification
    • On-chain Attestation
    • Trusted Execution Environment Cluster
    • About Trusted Execution Environments
    • Zero-Knowledge Proof
  • Verifier Nodes
    • Verifier Node Sale
    • Purpose of Verifier Nodes
    • Verifier Node Operations & App
    • Node Rewards & Projections
    • Node Licenses
    • Node Delegration
    • Node FAQs
  • Tokenomics
    • Utility
    • Distribution/Vesting
    • Staking
  • Bluwhale Community
    • Community Activations
    • Social & Community Links
    • Distributor & Referral Programs
    • Media Coverage
  • Resources
  • General FAQs
  • Brand Guidelines
  • Media Kit
  • Contact Us
  • Personalization Protocol
    • Overview
    • Architecture
      • Overview
      • Identity Layer
      • Data Storage Layer
      • Computation & Training Layer
      • Execution Layer
      • Verification Layer
  • How to Purchase Nodes
    • How to Purchase Nodes on Solana
  • Buyback Program
  • Why Verifier Nodes
  • How do Verifier Nodes Work
  • Bluwhale NFT License
  • Bluwhale Protocol Service
  • Trusted Execution Environment (TEE)
  • Verifier Node
  • Attestation
  • Delegation
  • SGX Attestation Verification
  • Verifier Node Sale Dynamics
  • Smart Contract Addresses
  • License Key (NFT)
  • Delegation
  • Node Rewards
  • Join Alphanet Verifier Nodes
  • Prerequisites
  • Delegation Tutorial
  • Operating a Verifier Node
  • Running in VPS
  • Running in CLI
  • Running in Desktop App
  • Explorer
Powered by GitBook
On this page

Bluwhale NFT License

Bluwhale NFT License

  • Non-transferable ERC-721 for first year (can be updated with governance).

  • Only syndicate funds can transfer NFT once and redistribute to their community.

  • A maximum of 100,000 tokens can be minted, with token IDs incrementing automatically.

  • Upon redemption, the token ID is permanently destroyed, and any unclaimed veBluwhale reverts to the foundation.

  • To redeem the NFT License, transfer the NFT to our predefined address. Redemption will be available 6 months after the TGE.

Function Definitions & Explanations

Copy

// SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.20;

interface IBluwhaleNft {

/**

* @notice This struct represents meta information bound to TokenID,

*

* `code`: code of this token entered by buyer

* `price`: price of this token paid by buyer

* `tier`: tier of this token

*/

struct MetaData {

string code;

uint64 price;

uint8 tier;

}

/**

* @notice mint {count} nft to {receiver}.

* @notice totalSupply 100,000

*

* @dev Auth: Only Owner.

*

* @param receiver: nft receiver

* @param count: how many nft to be minted to receiver

* @param meta: `MetaData` of this tokenID

*/

function mint(address receiver, uint256 count, MetaData calldata meta) external;

/**

* @notice mint {counts} nft to {receivers}.

* @notice call `mint`

*

* @dev Auth: Only Owner.

*

* @param receivers: array of receivers

* @param counts: array of counts

* @param metas: array of meta

*/

function mintBatch(address[] calldata receivers, uint256[] calldata counts, MetaData[] calldata metas) external;

/**

* @notice Set BaseURI of all the tokens

*

* @dev Auth: Only Owner.

*

* @param newBaseURI: newBaseURI

*/

function setBaseURI(string memory newBaseURI) external;

/**

* @notice Set TransferProhibitedUntil

* @notice When the time has not reached the `TransferProhibitedUntil`, ordinary tokens cannot be transferred.

*

* @dev Auth: Only Owner.

*

* @param newTransferProhibitedUntil: newTransferProhibitedUntil

*/

function setTransferProhibitedUntil(uint256 newTransferProhibitedUntil) external;

/**

* @notice Set RedeemAddress

* @notice When `transfer.to` is RedeemAddress, the token can be transferred under any circumstances

*

* @dev Auth: Only Owner.

*

* @param newRedeemAddress: newRedeemAddress

*/

function setRedeemAddress(address newRedeemAddress) external;

/**

* @notice Set TransferOnceWhitelist

* @notice Addresses in the whitelist can transfer tokens once before `TransferProhibitedUntil`

*

* @dev Auth: Only Owner.

*

* @param whitelist: whitelist

*/

function setTransferOnceWhitelist(address[] calldata whitelist) external;

}

PreviousHow do Verifier Nodes WorkNextBluwhale Protocol Service

Last updated 10 months ago