Skip to main content

A python api wrapper to access the available enpoints from the blockscan.com ecosystem

Project description

blockscan-python

This package was created in the hope to provide a multi-chain API wrapper for the blockscan.com endpoints and reduce the overhead of using multiple single chain wrapper.

Note

The following blockchains from blockscout.com are also provided BUT it’s because blockscout offers the API for developers transitioning their applications from Etherscan to BlockScout. If they deprecate those API in the future so will this package.

  • Gnosis (100)

  • Ethereum Classic (61)

  • Ethereum Classic Mordor (63)

  • Ethereum Classic Kotti (6)

  • POA Core (99)

  • POA Sokol (77)

  • Artis Sigma1 (246529)

  • RSK (30)

  • Hoo Smart Chain (70) (This one is technicaly part of blockscan.com but is built on top of blockscout)

Installation

Blockscan-python can be installed using pip as follows:

$ pip install blockscan-python

Usage

Refer to the full documentation for the list of endpoints and the specific blockscan provider for compatibility. This package doesn’t filter the endpoints on a per-chain basis. This means that some calls will fails if the provider doesn’t support it.

Prerequisite

  • The chain ID you want to connect to.

    Refer to chainlist if unknown

  • Specific chain API Token provided by blockscan

    (i.e: An etherscan.io token for Ethereum)

    Exception: Any Blockscout chain takes an empty string “”, No token required

Create a connection client

The connection can be created as Sync:

>>> from blockscan import Blockscan

# Sync connection to etherscan.io
>>> client = blockscan(1, "MYAPITOKEN", is_async=False)
>>> client.accounts.get_currency_balance(
        "0x0000000000000000000000000000000000000000"
        )
'11400022397988649428803'

But will default to Async if no parameter is provided:

>>> from blockscan import BlockScan

#Async connection to bscscan.com
>>> client = Blockscan(56, "MYAPITOKEN")
>>> bal = await client.accounts.get_currency_balance(
                "0x0000000000000000000000000000000000000000"
                )
>>> print(bal)
'1073557893975925234717'

The full list of parameters is available in the documentation

Credits

Credits to @pcko1 for making the bscscan-python that was used as the base for this package

TO-DOs

  • Add a reference table of the available Chain ID to the docs

History

0.0.1 (2022-07-02)

  • First release on PyPI.

1.1.0 (2022-07-03)

  • CI tests and deployment added

  • Packaging build tested and beta ready

1.1.1 (2022-07-26)

  • Preloaded modules for easier IDE usage

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blockscan-python-1.1.1.tar.gz (117.2 kB view hashes)

Uploaded Source

Built Distribution

blockscan_python-1.1.1-py2.py3-none-any.whl (26.5 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page