Ternoa indexer is a record of the Ternoa Chain data. You can query data for some specific entities (NFT, Collection, Marketplace(...)) using graphql. In this example, we use the graphql-request library.
Step 1: rentEntity query preparation
You first need to prepare a stringified query to get the rental NFT data, from a specific NFT id. Here are detailed the parameters available for the rentEntity:
`nftId`: The NFT id - String`hasStarted`: Boolean flag: true if the rent contract has started, false otherwise - Boolean`hasEnded`: Boolean flag: true if the rent contract has ended, false otherwise - Boolean`hasBeenCanceled`: Boolean flag: true if the rent contract has been canceled, false otherwise - Boolean`isExpired`: Boolean flag: true if the rent contract has expired, false otherwise - Boolean`renter`: The contract owner - String`rentee`: The contract renter - String`startBlockId`: The starting block id when the contract is rented - Number`durationType`: The contract duration type: Fixed or Duration - String`blockDuration`: The contract duration in block number - Number`maxSubscriptionBlockDuration`: The subscription contract duration - Number`isSubscriptionChangeable`: Boolean flag: true if the subscription contract can be updated, false otherwise - Boolean`nextSubscriptionRenewalBlockId`: The next subscription contract renewal block id - Number`nbSubscriptionRenewal`: The number of renewals already done - Number`newTermsAvailable`: Boolean flag: true if some new terms are available until the end of the current subscription period, false otherwise - Boolean
`nbTermsUpdate`: The number of contract updates validated - Number`acceptanceType`: The contract acceptance type: Automatic or Manual - String`acceptanceList`: The contract acceptance list: an array of address (string) or null - String[]`renterCanRevoke`: Boolean flag: true if the renter can revoke a rented contract, false otherwise. - Boolean`revokedBy`: The address of the revoked contract - String`rentFeeType`: The rental contract fee type: Token amount or NFT - String`rentFee`: The rental contract fee: Token amount in Big Number format or NFT id - String`rentFeeRounded`: The rental contract fee: Token amount in number format or NFT id - Float`rentOffers`: The address of rentee offers - String[]`nbRentOffers`: The current number of rent offers received - Number`totalRentOffersReceived`: The total number of rent offers received (incl. offers retracted) - Number`renterCancellationFeeType`: The renter cancellation fee type: Fixe or Flexible Token amount, or NFT - String!`renterCancellationFee`: The renter cancellation fee value: Token amount in Big Number format or NFT id - String!`renterCancellationFeeRounded`: The renter cancellation fee value: Token amount in number format or NFT id - Float`renteeCancellationFeeType`: The rentee cancellation fee type: Fixe or Flexible Token amount, or NFT - String!`renteeCancellationFee`: The rentee cancellation fee value: Token amount in Big Number format or NFT id - String!`renteeCancellationFeeRounded`: The rentee cancellation fee type: Fixe or Flexible Token amount, or NFT - String!`timestampCreated`: The contract creation timestamp - Date`timestampStarted`: The contract started timestamp - Date`timestampLastSubscriptionRenewal`: The last subscription contract renewal timestamp - Date`timestampLastTermsUpdate`: The last subscription contract update timestamp - Date`timestampLastOffer`: The last contract offer received a timestamp - Date`timestampEnded`: The contract end timestamp - Date`timestampCancelled`: The contract cancelation timestamp - Date`timestampRevoked`: The contract revocation timestamp - Date`timestampExpired`: The contract expiration timestamp - Date
Do not hesitate to adapt the information you require in your query and replace RENTAL_NFT_ID with the NFT id you want to get the information from (e.g. the NFT id from the NFT previously used in "How to rent an NFT on-chain"):
The getRentalNFTData function is an asynchronous function that sends a GraphQL request using the request function from the "graphql-request" library. The response from the server is an object with a property rentEntity that has the data of the requested Rental NFT entity.
Support
If you face any trouble, feel free to reach out to our community engineers in our Discord.