Skip to main content

Subscription

Subscription service for the protocol. Manages the subscription of NFTs to entities, updating the entity URIs and unlocking free NFTs.

subscribeToEntity

Subscription is a unique feature. It allows NFTs to subscribe to an entity and assigns additional URI.

For technical info, check here.

subscribeToEntity(
tokenId: string,
tokenContract: string,
subscriptionId: string,
subscriptionPrice: string
)

updateURISlot

Updates the URI of an entity on an NFT. It requires a valid signature signed by the verifier address which is given during the entity registration as a parameter or it may have been changed later. To generate the signature, see our utility functions here

For technical info, check here.

updateURISlot(_signature: string, _updateInfo: string)

unlockToken

Unlocks free mint NFTs. Free mint NFTs are locked to subscribe and as a result, locked to upgradability. By paying its template price, it can be unlocked.

For technical info, check here.

unlockToken(_signature: string, _tokenId: string, unlockPrice: string)

transferTokenEntityURI

Since an NFT has multiple URIs rather than having only one, it is possible to sell one of the URIs to another NFT. Resets the sold URI to the default URI and updates the URI of the buyer NFT with the URI of the seller NFT.

For technical info, check here.

transferTokenEntityURI(
seller: SellOrder,
buyer: BuyOrder,
sellerSignature: string,
buyerSignature: string
)

setDefaultURI

When an NFT is subscribed to an entity, it is assigned a default URI initially. It shows that the NFT is subscribed to the entity.

For technical info, check here.

setDefaultURI(
_entityId: string,
_defaultURI: string
)

withdraw

Withdraws saved funds from subscriptions for entities.

For technical info, check here.

withdraw(_entityId: string,_amount: string)

withdrawProtocol

Witdraws saved fees from subcriptions and unlocks for the protocol.

For technical info, check here.

withdrawProtocol(amount: string)

getIsAddressRegisteredAsEntity

Returns whether an address is registered as an entity or not.

For technical info, check here.

getIsAddressRegisteredAsEntity(address: string): Promise<boolean>

getEntityBalance

Returns the balance of an entity.

For technical info, check here.

getEntityBalance(entityId: string): Promise<BigNumber>

getEntityConfig

Returns the configuration of an entity.

For technical info, check here.

getEntityConfig(entityId: string): Promise<EntityConfig>

type EntityConfig = {
entityId: BigNumber;
subscriptionPrice: BigNumber;
defaultURI: string;
uriSet: boolean;
signer: string;
}

getIsUnlocked

Returns whether an NFT is unlocked or not.

For technical info, check here.

getIsUnlocked(tokenId:string, tokenContract:string): Promise<boolean>

getIsSubscribed

Returns whether an NFT is subscribed to an entity or not. Subscribing the same NFT to the same entity twice is not possible.

For technical info, check here.

getIsSubscribed(
_tokenId: string,
_tokenContract: string,
_subscriptionId: string
): Promise<boolean>

getCollection

Returns the collection of an entity.

For technical info, check here.

getCollection(
_contractAddress: string
): Promise<Collection>

calculateBatchSubscriptionPrice

Calculates the total price of a batch subscription.

For technical info, check here.

calculateBatchSubscriptionPrice(_subscriptionIds: string[]): Promise<BigNumber>