Extensions

Certificate Extensions

UVerify extensions build on top of the core certificate infrastructure to unlock additional on-chain behaviors. While a standard UVerify certificate permanently records a hash on Cardano, extensions go further by attaching token-based mechanics to those certificates.

Each extension is a separate Aiken smart contract (validator) that interacts with the UVerify state validator. The backend provides ready-made transaction builders so you do not have to write any Cardano transaction logic yourself.

Available Extensions

Fractionized Certificate

Issue a certificate that allows multiple claimants to mint a fixed supply of fungible tokens. Ideal for reward distributions, token airdrops tied to verifiable credentials, or any scenario where a certificate represents a divisible asset.

Tokenizable Certificate

Attach a unique NFT to a certificate. The designated owner can redeem it once to receive a non-fungible token, with optional CIP-68 support for rich on-chain metadata.

Common Architecture

Both extensions share the same underlying design:

  • A sorted linked-list of UTxOs lives at the validator script address. Each node holds one certificate entry and a pointer to the next node (by key, in ascending byte order).
  • A special HEAD node stores the global configuration (deployer key, allowed inserters, UVerify validator hash, and extension-specific settings).
  • Every insert transaction atomically updates the UVerify state validator in the same transaction, so the on-chain certificate record and the extension node are always in sync.
  • The backend handles EUTXO contention automatically: if two inserts conflict on the same predecessor node, the second transaction is rebuilt using a fork-and-orphan strategy.

API

Both extensions expose the same two REST endpoints:

MethodPathPurpose
POST/api/v1/extension/{type}/buildBuild a transaction (Init / Insert / Claim or Redeem)
GET/api/v1/extension/{type}/status/{key}Query the current on-chain node status

Where {type} is fractionized-certificate or tokenizable-certificate.

Full request/response schemas are available in the API Docs.