Cohort

The Cohort is a blockchain smart contract designed for the OpenCohort system. It functions as both an ERC-721 NFT and a Soulbound Token (SBT) implementing the ERC-5192 standard. The contract provides metadata and snapshot capabilities and defines multiple structures for storing Merkle Tree information.

Code

Address

  • Mainnet : TBD

Standard Implementations

The standard aspects of ERC-721 and ERC-5192 that do not require specific understanding are omitted in the section below.

Data Structures

  • Enum CohortType

    • This enum specifies whether to define the cohort of Address Type or Identity Type.

  • Struct CohortMetadata

    • This common structure is used to represent both general information about the Cohort item and details about snapshots.

    • For general item information, it defines standard NFT attributes via tokenURI and specifies the Cohort type. It also references details about the latest rollup data, such as merkleRoot, totalWeight, totalCount, and prover.

    • For snapshot metadata, it contains information for each snapshot, including merkleRoot, totalWeight, totalCount, and the prover.

    • Structure Variables

      • cohortType: Specifies the type of Cohort.

      • tokenURI: Standard token URI.

      • merkleRoot: Merkle Tree Root Hash for the snapshot.

      • totalWeight: Total weight of the snapshot.

      • totalCount: Total member count in the snapshot.

      • prover: Prover that provides snapshot data.

Events

  • MetadataUpdate

    • Triggered when the metadata of a specific Cohort is updated.

    • Parameters

      • tokenId: Unique ID of the token whose metadata was updated.

  • SetCohortMetadata

    • Triggered when Cohort metadata is set.

    • Parameters

      • tokenId: Unique ID of the token for which metadata is set.

      • nonce: Unique value for the metadata.

      • metadata: Contents of the set Cohort metadata.

      • snapShotTime: Timestamp of the snapshot.

  • SetCohortGrant

    • Triggered when the grant rate for a specific Cohort item is set.

    • Parameters

      • tokenId: Unique ID of the token for which the grant is set.

      • cohortGrant: Set information regarding the Cohort grant rate.

Read-Only Functions

  • cohortType

    • Returns the cohort type of a specific token.

    • Parameters

      • tokenId: The unique ID of the token to check the type for.

    • Return Value: The cohort type of the specified token.

  • grant

    • Returns the grant rate information for a specific token's cohort. The accuracy of this rate is determined by GRANT_RATE_DENOMINATOR, and the maximum rate is set by MAX_GRANT_RATE.

    • Parameters

      • tokenId: The unique ID of the token to check the grant for.

    • Return Value: The grant rate information for the specified token's cohort.

  • metadata

    • Returns the metadata of a specific token.

    • Parameters

      • tokenId: The unique ID of the token to check the metadata for.

    • Return Value: The metadata of the specified token.

  • metadataNonce

    • Returns the metadata nonce for a specific token. This is used to verify the nonce for the next rollup.

    • Parameters

      • tokenId: The unique ID of the token to check the metadata nonce for.

    • Return Value: The metadata nonce of the specified token.

  • getLastSnapShotTime

    • Returns the timestamp of the last rollup snapshot for a specific token.

    • Parameters

      • tokenId: The unique ID of the token to check the snapshot timestamp for.

    • Return Value: The timestamp of the last snapshot.

  • getExactTimeSnapShot

    • Returns the exact snapshot metadata for a specific timestamp.

    • Parameters

      • tokenId: The unique ID of the token to check the snapshot for.

      • timestamp: The timestamp to verify.

    • Return Value: The snapshot metadata for the specified timestamp.

  • getSnapShot

    • Returns snapshot data for a specific timestamp.

    • Parameters

      • tokenId: The unique ID of the token to check the snapshot for.

      • timestamp: The timestamp to verify.

    • Return Value: The snapshot metadata for the specified timestamp.

  • getChainId

    • Returns the current chain ID.

    • Return Value: The chain ID.

State-Changing Functions

  • mint

    • Mints a new cohort token. Any user can issue a new cohort.

      • Parameters

        • cohortMetadata: Metadata of the token to be minted.

    • Return Value: The unique ID of the minted token.

  • setTokenURI

    • Sets the URI for a specific token.

      • Parameters

        • tokenId: The unique ID of the token for which to set the URI.

        • tokenURI_: The URI string to be set.

  • setCohortGrant

    • Sets the cohort grant rate for a specific token.

      • Parameters

        • tokenId: The unique ID of the token for which to set the grant.

        • cohortGrant: The cohort grant rate information to be set.

  • rollupWithSignature

    • Processes a rollup with a signature, utilizing snapshot signature information provided by the partner as Manager.

      • Parameters

        • tokenId: The unique ID of the token to process the rollup for.

        • cohortMetadata: Specifies the cohort information.

        • timestamp: The snapshot timestamp.

        • signature: A signature to confirm that the snapshot to be rolled up was created by the owner.

Last updated

Logo

Copyright HIGHDRAW. All Rights Reserved.