使用 python 获取 solana NFT 链上数据

Get solana NFT on-chain data using python

如何使用 python 获取 Solana NFT 链上数据(如 NFT 创建者)?

有 solana-py 库,但我没有找到相关的函数。

我不是 Blockchains/NTF/Web3 方面的专家,所以我不确定它是否是您需要的。

如果您在 blockchainapi.com 上创建(免费)帐户(它需要 Google 帐户)并获得 API 密钥,那么您甚至可以使用模块 requests

import requests
import pprint

headers = {
    'APIKeyId': 'MY_API_KEY_ID',
    'APISecretKey': 'MY_API_SECRET_KEY',
}

network = 'mainnet-beta'
mint_address = '3LZ9ezL5BkCtvdVGLkrw1q633EgfeYDpgGtBgWDgmaSU'

# --- metadata ---

url = f"https://api.blockchainapi.com/v1/solana/nft/{network}/{mint_address}"
response = requests.get(url, headers=headers)
data = response.json() 

pprint.pprint(data)

# --- owner ---

url = f"https://api.blockchainapi.com/v1/solana/nft/{network}/{mint_address}/owner"
response = requests.get(url, headers=headers)
data = response.json() 

pprint.pprint(data)

结果:

{'data': {'creators': ['64eiSEPv2KRKNkPAX6d4BZQ3b12PcFqZP2yPoNAZw9po',
                       'yeT3ik5jX5RuK8JF8P3RRHrr9g6ox6RMWbRMh3r9FxQ'],
          'name': 'Baby Yetis #257',
          'seller_fee_basis_points': 500.0,
          'share': [100.0, 0.0],
          'symbol': '',
          'uri': 'https://arweave.net/4PtHGFuAw2U-T4nrIWVRxJ0EpVIivRWi4xjreBkmMVg',
          'verified': [0.0, 1.0]},
 'explorer_url': 'https://explorer.solana.com/address/3LZ9ezL5BkCtvdVGLkrw1q633EgfeYDpgGtBgWDgmaSU',
 'is_mutable': True,
 'mint': '3LZ9ezL5BkCtvdVGLkrw1q633EgfeYDpgGtBgWDgmaSU',
 'primary_sale_happened': False,
 'update_authority': 'yeT3ik5jX5RuK8JF8P3RRHrr9g6ox6RMWbRMh3r9FxQ'}

{'nft_owner': '8hJSGbZhk4q8LjeRRXaLfKEPhEHQLBpLPrd1mmAG4953'}

上的相同 NFT

文档 blockchainapi: solanaGetNFT, solanaGetNFTOwner


编辑:

还有python模块theblockchainapi

(pip install theblockchainapi)

from theblockchainapi import TheBlockchainAPIResource, SolanaNetwork
import pprint

BLOCKCHAIN_API_RESOURCE = TheBlockchainAPIResource(
    api_key_id='MY_API_KEY_ID',
    api_secret_key='MY_API_SECRET_KEY'
)

nft_address = 'AC6JJcepC9hZzHGVDmx5F3LSGeRhdok1VkcLSZsHoy26'

# --- metadata ---

data = BLOCKCHAIN_API_RESOURCE.get_nft_metadata(
    mint_address=nft_address,
    network=SolanaNetwork.MAINNET_BETA
)

pprint.pprint(data)

# --- owner ---

data = BLOCKCHAIN_API_RESOURCE.get_nft_owner(
    mint_address=nft_address,
    network=SolanaNetwork.MAINNET_BETA
)

pprint.pprint(data)