Ankr.py SDK is a compact Python library that enables interaction with Advanced API.
- Install the latest package stored on PyPi.
pip install ankr-sdk- Initialize the SDK.
Sign in to the RPC Service platform, get your individual endpoint from the Advanced API pane, and provide it to the AnkrWeb3 class.
from ankr import AnkrWeb3
ankr_w3 = AnkrWeb3("YOUR_ENDPOINT")- Use the SDK to call the methods supported:
- Node API
eth_block = ankr_w3.eth.get_block("latest")
bsc_block = ankr_w3.bsc.get_block("latest")
polygon_block = ankr_w3.polygon.get_block("latest")- NFT API
from ankr.types import Blockchain
nfts = ankr_w3.nft.get_nfts(
blockchain=[Blockchain.ETH, Blockchain.BSC],
wallet_address="0x0E11A192d574b342C51be9e306694C41547185DD",
filter=[
{"0x700b4b9f39bb1faf5d0d16a20488f2733550bff4": []},
{"0xd8682bfa6918b0174f287b888e765b9a1b4dc9c3": ["8937"]},
],
)- Token API
assets = ankr_w3.token.get_account_balance(
wallet_address="0x77A859A53D4de24bBC0CC80dD93Fbe391Df45527"
)- Query API
logs = ankr_w3.query.get_logs(
blockchain="eth",
from_block="0xdaf6b1",
to_block=14350010,
address=["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"],
topics=[
[],
["0x000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff"],
],
decode_logs=True,
)Currently, ankr.py supports interaction with the following chains using their aliases:
Mainnet:
- Arbitrum:
arbitrum. - Avalanche:
avalanche. - Base:
base. - BNB Smart Chain:
bsc. - Ethereum:
eth. - Fantom:
fantom. - Flare:
flare. - Gnosis:
gnosis. - Linea:
linea. - Optimism:
optimism. - Polygon:
polygon. - Scroll:
scroll. - Stellar:
stellar. - Story:
story_mainnet. - Syscoin:
syscoin. - Telos:
telos. - Xai:
xai. - X Layer:
xlayer
Testnet:
- Avalanche Fuji:
avalanche_fuji. - Base Sepolia:
base_sepolia. - Ethereum Holesky:
eth_holesky. - Ethereum Sepolia:
eth_sepolia. - Optimism Testnet:
optimism_testnet. - Polygon Amoy:
polygon_amoy. - Story Testnet:
story_aeneid_testnet.
nft.get_nfts— retrieves data on all the NFTs (collectibles) owned by a wallet.nft.get_nft_metadata— retrieves metadata of a particular NFT.token.get_token_holders— retrieves holders of a particular NFT.token.get_token_holders_count_history— retrieves the number of token holders for the particular period of time.token.get_token_holders_count— retrieves the number of token holders for the latest block.token.get_account_balance— retrieves the balance of a particular account.query.get_logs— retrieves history data of a particular block range.query.get_blocks— retrieves full info of a particular block.query.get_transaction— retrieves the details of a transaction specified by hash.
Retrieves data on all the NFTs (collectibles) owned by a wallet.
nfts = ankr_w3.nft.get_nfts(
blockchain="eth",
wallet_address="0x0E11A192d574b342C51be9e306694C41547185DD",
filter=[
{"0x700b4b9f39bb1faf5d0d16a20488f2733550bff4": []},
{"0xd8682bfa6918b0174f287b888e765b9a1b4dc9c3": ["8937"]},
],
)Retrieves metadata of a particular NFT.
nfts = ankr_w3.nft.get_nft_metadata(
blockchain="eth",
contract_address="0x4100670ee2f8aef6c47a4ed13c7f246e621228ec",
token_id="4",
)Retrieves holders of a particular NFT.
holders = ankr_w3.token.get_token_holders(
blockchain="bsc",
contract_address="0xf307910A4c7bbc79691fD374889b36d8531B08e3",
limit=10,
)Retrieves the number of token holders for the particular period of time.
daily_holders_history = ankr_w3.token.get_token_holders_count_history(
blockchain="bsc",
contract_address="0xf307910A4c7bbc79691fD374889b36d8531B08e3",
limit=10, # last 10 days history
)Retrieves the number of token holders on the latest block.
holders_count = ankr_w3.token.get_token_holders_count(
blockchain="bsc",
contract_address="0xf307910A4c7bbc79691fD374889b36d8531B08e3",
)Retrieves the balance of a particular account.
assets = ankr_w3.token.get_account_balance(
wallet_address="0x77A859A53D4de24bBC0CC80dD93Fbe391Df45527",
blockchain=["eth", "bsc"],
)Retrieves history data of a particular block range.
logs = ankr_w3.query.get_logs(
blockchain="eth",
from_block="0xdaf6b1",
to_block=14350010,
address=["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"],
topics=[
[],
["0x000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff"],
],
decode_logs=True,
)Retrieves full info of a particular block.
blocks = ankr_w3.query.get_blocks(
blockchain="eth",
from_block=14500001,
to_block=14500001,
desc_order=True,
include_logs=True,
include_txs=True,
decode_logs=True,
)Retrieves the details of a transaction specified by hash.
tx = ankr_w3.query.get_transaction(
transaction_hash="0x82c13aaac6f0b6471afb94a3a64ae89d45baa3608ad397621dbb0d847f51196f",
include_logs=True,
decode_logs=True,
decode_tx_data=True,
)