bscscan-python
A complete Python API for BscScan.com, available on PyPI. Powered by BscScan.com APIs.
This is a gently modified fork of the etherscan-python package.
Endpoints
The following endpoints are provided:
Accounts (source)
get_bnb_balanceget_bnb_balance_multipleget_normal_txs_by_addressget_normal_txs_by_address_paginatedget_internal_txs_by_addressget_internal_txs_by_address_paginatedget_internal_txs_by_txhashget_internal_txs_by_block_range_paginatedget_bep20_token_transfer_events_by_addressget_bep20_token_transfer_events_by_contract_address_paginatedget_bep20_token_transfer_events_by_address_and_contract_paginatedget_validated_blocks_by_addressget_validated_blocks_by_address_paginated
Blocks (source)
get_block_reward_by_block_numberget_est_block_countdown_time_by_block_numberget_block_number_by_timestamp
GETH/Parity Proxy (source)
get_proxy_block_numberget_proxy_block_by_numberget_proxy_block_transaction_count_by_numberget_proxy_transaction_by_hashget_proxy_transaction_by_block_number_and_indexget_proxy_transaction_countget_proxy_transaction_receiptget_proxy_callget_proxy_code_atget_proxy_storage_position_atget_proxy_gas_priceget_proxy_est_gas
Tokens (source)
get_total_supply_by_contract_addressget_circulating_supply_by_contract_addressget_acc_balance_by_token_contract_address
If you think that a newly-added method is missing, kindly open an issue as a feature request and I will do my best to add it.
Installation
Before proceeding, you should register an account on BscScan.com and generate a personal API key to use.
Install from source:
pip install git+https://github.com/pcko1/bscscan-python.git
Alternatively, install from PyPI:
pip install bscscan-python
Unit tests
In bash, test that everything looks OK on your end using your YOUR_API_KEY (without quotation marks) before proceeding:
bash run_tests.sh YOUR_API_KEY
This will regenerate the logs under logs/ with the most recent results and the timestamp of the execution.
Usage
In python, create a client with your personal BscScan.com API key:
from bscscan import BscScan
bsc = BscScan(YOUR_API_KEY) # key in quotation marks
Then you can call all available methods, e.g.:
bsc.get_bnb_balance(address="0x0000000000000000000000000000000000001004")
> '167195709084498025431541166'
Examples
Examples (arguments and results) for all methods may be found as JSON files here. For example, if you want to use the method get_circulating_supply_by_contract_address, you can find the supported arguments and the format of its output in its respective JSON file:
{
"method": "get_circulating_supply_by_contract_address",
"module": "tokens",
"kwargs": {
"contract_address": "0xe9e7cea3dedca5984780bafc599bd69add087d56"
},
"log_timestamp": "2021-02-19-12:34:14",
"res": "422504134592569820000000000"
}
where kwargs refer to the required named arguments and res refers to the expected result if you were to run:
bsc.get_circulating_supply_by_contract_address(contract_address="0xe9e7cea3dedca5984780bafc599bd69add087d56")
> '422504134592569820000000000'
Disclaimer: Those examples blindly use argument values (addresses, contracts, etc.) that were randomly chosen and do not reflect any personal preference.
Issues
For problems regarding installing or using the package please open an issue. Kindly avoid disclosing potentially sensitive information such as your API keys or your wallet addresses.
Cite
Kotsias, P. C., pcko1/bscscan-python: v1.0.0. https://github.com/pcko1/bscscan-python (2021). doi:10.5281/zenodo.4580473
or in bibtex:
@misc{Kotsias2020,
author = {Kotsias, P.C.},
title = {pcko1/bscscan-python},
year = {2021},
publisher = {Zenodo},
url = {https://github.com/pcko1/bscscan-python},
doi = {10.5281/zenodo.4580473}
}
Feel free to leave a
Powered by Bscscan.com APIs.