When creating a collection, you can specify a
storage parameter to determine where the credentials will be stored. The possible values for this parameter are:
If no parameter is passed,
crossmint is the default option.
With this option, credentials are stored on the Crossmint database. This is the most flexible solution and is compatible with all other features.
IMPORTANT: There is not access control on credential retrieval, credential data is public and can be retrieved by anyone, use encrypted credentials if you need to protect the data.
With delegated storage, the credential is not stored anywhere and no reference to the data is stored on Crossmint databases. The credential is returned to the issuer via the webhook and the issuer is responsible for storing it.
All Crossmint retrieval endpoints will consequently be disabled. A
delegatedStorageEndpoint parameter must be added to the collection creation request to specify the endpoint where the credential can be retrieved. (Can be set to a dummy value like “unknown” if not desired)
This endpoint will be saved in the collection metadata and can be used by users to retrieve the credential associated with their NFT.
This option will store the credential to a decentralized storage (IPFS), the
retrievalId will be the IPFS hash,
urn:ipfs:<cid>. The only retrieval endpoint available will be the one by
retrievalID, that will retrieve the credential from IPFS.
Encryption is suggested to avoid the credential to be public.
NOTE: In case of ipfs storage the
credentialId and the
retrievalId will be different.