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.