Skip to content

Latest commit

 

History

History
74 lines (62 loc) · 2.59 KB

readme.md

File metadata and controls

74 lines (62 loc) · 2.59 KB

Fetch Sol Nft

Package for fetching Solana NFTs. Built on-top of @solana/web3.js.

Npm

Installation

Install the dependency.

npm i @fedorerd/fetch-sol-nft

Create new instance of FetchSolNftClient.

import { FetchSolNftClient } from "@fedorerd/fetch-sol-nft"

const RPC: string = "https://api.mainnet-beta.solana.com"
// You may pass instance of @solana/web3.js Connection instead of rpc url string
const client = new FetchSolNftClient(RPC)

Usage

Client provides multiple subclient, which do different things.

0. Fetch

Fetch client provides function to fetch Solana NFTs.

const MINT = new PublicKey("3Z3HYn4TW9bnUrd58j6wKzQgmz23JPzS4PN12JXamZ9n")
const nft = await client.fetch.nftByMint({
    mint: MINT
})

Available functions: nftByMint, nftsByOwner.

1. Constants

Constants client contains on-chain program IDs needed for working with NFTs.

const METAPLEX_TOKEN_METADATA_PROGRAM_ID = client.constants.tokenMetadataProgramId

Programs available: tokenMetadataProgramId, associatedTokenProgramId, tokenProgramId.

2. Pdas

Pdas client provides functions to derive program derived addresses.

const NFT_MINT_ADDRESS: string = "3Z3HYn4TW9bnUrd58j6wKzQgmz23JPzS4PN12JXamZ9n"
const nftMetadataAddress = client.pdas.getMetadata({
    mint: new PublicKey(NFT_MINT_ADDRESS)
})

Available functions: getMetadata, getEdition (NFT edition/master edition), getTokenRecord (pNFT token record), getAssociatedToken (associated token address).

3. Coder

Coder client provides function to decode accounts. It takes Buffer data and returns deserialized account data.

const RPC = "https://api.mainnet-beta.solana.com"
const MINT = new PublicKey("3Z3HYn4TW9bnUrd58j6wKzQgmz23JPzS4PN12JXamZ9n")
const data = await new Connection(RPC).getAccountInfo(MINT).then(a => a?.data)
if (!data) return
const decoded = client.coder.mintAccount(data)
console.log(decoded)

Available decoders: mintAccount, metadataAccount, tokenAccount, uriJson (additional decoder for offchain json uri, which contains NFT attributes, description, etc.).

4. Update connection

You may always update solana connection if you wish so.

const NEW_RPC: string = "https://api.devnet.solana.com"
client.updateConnection(NEW_RPC)
This package is not audited. Use at your own risk.
This package has no license yet, since I don't know which one to use lol. But feel free to use, idc.

Feel free to contribute by creating PRs!