Once Inscription Accounts are their Metadata can be read from chain again. Once data is it can also be read. To fetch inscriptions you also have to use different functions according to the inscription type.
Both inscription types use a metadata account. This Account contains for example the inscriptionRank
, associatedInscriptions
, updateAuthorities
and . The Metadata can be fetched like so:
Fetch Inscription Metadata
JavaScript
Copy import { safeFetchInscriptionMetadataFromSeeds } from '@metaplex-foundation/mpl-inscription'
const inscriptionMetadataAccount = await safeFetchInscriptionMetadataFromSeeds(
umi,
{
inscriptionAccount: inscriptionAccount.publicKey,
}
)
console.log(inscriptionMetadataAccount)
Fetch mint inscription
To fetch the deserialized mint inscription you can use safeFetchMintInscriptionFromSeeds
like so:
Fetch Mint Inscription
JavaScript
Copy import { fetchInscription, safeFetchMintInscriptionFromSeeds, safeFetchInscriptionMetadataFromSeeds } from '@metaplex-foundation/mpl-inscription'
const mintInscription = await safeFetchMintInscriptionFromSeeds(umi, {
mint,
})
const inscriptionMetadataAccount = await safeFetchInscriptionMetadataFromSeeds(
umi,
{
inscriptionAccount: inscriptionAccount.publicKey,
}
)
const associatedInscriptionAccount = findAssociatedInscriptionPda(umi, {
associated_tag: inscriptionMetadataAccount.associatedInscriptions[0].tag,
inscriptionMetadataAccount.publicKey,
})
const imageData = await fetchInscription(umi, associatedInscriptionAccount[0])
Fetch data inscription
To read Inscription Data that is not attached to NFTs a different function is used:
Fetch Inscription
JavaScript
Copy import { fetchInscription } from '@metaplex-foundation/mpl-inscription'
const inscription = fetchInscription(umi, inscriptionAddress)
Fetch current Inscription count
The current total inscription count can be fetched like so:
Fetch current Inscription count
JavaScript
Copy import {
fetchAllInscriptionShard,
findInscriptionShardPda,
} from '@metaplex-foundation/mpl-inscription'
const shardKeys: Pda[]
for (let shardNumber = 0; shardNumber < 32; shardNumber += 1) {
shardKeys.push(findInscriptionShardPda(umi, { shardNumber }))
}
const shards = await fetchAllInscriptionShard(umi, shardKeys)
let numInscriptions = 0
shards.forEach((shard) => {
const rank = 32 * Number(shard.count) + shard.shardNumber
numInscriptions = Math.max(numInscriptions, rank)
})
console.log(`Currently there are ${numInscriptions} Metaplex Inscriptions`)