Core FPT Functionality

  1. A smart contract (principal) can have multiple FPT contracts
    1. Shadow Registry only recognizes one FPT smart contract, the first one deployed
  2. Any wallet can deploy the FPT contract, they do not need to own the principal smart contract
    1. The owner of the principal smart contract is the ideal owner of the FPT, but there are cases this won’t work:
      1. Principal smart contract is burned
      2. Principal smart contract owner private keys are lost
      3. Supports community take-over of a dead project without impacting the original tokenomics
  3. On deployment of FPT smart contract through the FPT Deployer, all minted tokens from the principal contract have their FPT created and assigned to the principal NFT owner’s wallet.
    1. Transaction details are available on the FPT Deployer page with a link to the FPT smart contract.
    2. As new principal tokens are minted, new FPTs are assigned to the new token owner
  4. Principal owner is able to use the setSurrogate function (or setSurrogates for bulk action) to assign the FPT to their hot wallet
    1. Principal owner can recall FPT as needed through the unsetSurrogate (or unsetSurrogates for bulk action) function
      1. Principal owner must input tokenID or tokenIDs
  5. FPT will be assigned back to the current principal owner wallet in the situation that the owner of the principal token is changed through sale or transfer
  6. The onchain management functions are available at dashboard.foolproof.xyz
    1. The address for a deployed FPT is also available on the dashboard
  7. ERC721Enumberable is available by proxy
  8. Upgradeable through diamond storage pattern
  9. Suports tokenURI()
  10. Low gas softSync() function can be used to invalidate shadow tokens after principal token has been transferred

Features

Shadow Registry

Dashboard

FPT Deployer

Amped FPT/Centralized Moderation

Immutable Control FPT

Foolproof Labs