FOS LogoFOS Documentation
Technical Docs

Verify Authenticity Certificates

ERC-721 origin certificates, current validity, and revocation

Verify Contract

Verify issues a separate ERC-721 certificate for supported official events. It does not hold allocation pools, run referrals, pay allocations, or perform recipient selection.

Origins

IDConstantUse
1ORIGIN_FREE_MINTFree mint/campaign
2ORIGIN_LOTTERYOfficial FOSNFT cycle mint
3ORIGIN_STORYStory/content
4ORIGIN_ADMINManual admin issuance
5ORIGIN_REFERRALInitial referral registration

Owner may define or enable/disable origin types using setOriginType.

Issuance and authorization

  • adminMint(to, originTypeId, originId, uri) is limited to owner or adminWallet.
  • mintFromContract(to, originTypeId, originId, uri) requires approvedMinters[msg.sender] == true.
  • Owner authorizes a source with setApprovedMinter; the source sets its Verify connection with setVerifyContract under its own access controls.
  • Ordinary wallets cannot directly mint certificates.

FOSNFT's connected mint path issues origin type 2, originId = fosTokenId, and the supplied URI. Referral's connected registration path issues origin type 5, origin ID 0, and empty URI. The specification does not issue a new certificate on referral upgrade. Processor has no direct Verify integration in the supplied design.

Records

Token IDs begin at 1 and increase. getNftInfo exposes the record; totalMinted gives the issuance count.

FieldMeaning
existsRecord is registered
activeCurrent validity flag
originTypeOrigin category
originContractSource contract or issuing caller
originIdSource event/asset identifier
minterInitial recipient of the Verify NFT
createdAtIssuance timestamp

minter is historical provenance, not current ownership. Read ERC-721 ownership for the current holder. A certificate and its linked FOSNFT are separate tokens.

Check current status

CodeStatusMeaning
0NOT_REGISTEREDNo record
1OFFICIAL_ACTIVEOfficial and currently active
2OFFICIAL_REVOKEDOfficially issued but revoked

isOfficial(tokenId) checks existence only. It may return true for a revoked token. Interfaces must use getStatus to display current validity.

Only owner may revoke(tokenId, reasonCode). Revocation sets active = false; it does not burn the NFT, transfer ownership, or erase the record/history. Owner also manages approved minters, origins, admin wallet, and URI configuration. adminWallet can issue manual certificates but is not described as having owner-only revocation authority.

On this page