Skip to main content

A crypto-currency address inspection/validation library.

Project description

CoinAddrValidator

Github Repo Pypi Version Pypi License Pypi Wheel Pypi Versions

Maintainer

Mohammad Aghamir - Maintainer of this repository - coinaddrvalidator

Fork Maintainer

Devmons s.r.o. - Maintainer of this fork - coinaddrng

See also the list of contributors who participated in this project.

Original Maintainer

Joe Black | me@joeblack.nyc | github

Introduction

A cryptocurrency address inspection/validation library for python.

Supported currencies

  • binancecoin
  • bitcoin
  • bitcoin-sv
  • bitcoin-cash
  • boscoin
  • cardano
  • cosmos
  • dashcoin
  • decred
  • dogecoin
  • eos
  • ethereum
  • ethereum-classic
  • ether-zero
  • groestlcoin
  • horizen
  • kusama
  • litecoin
  • neocoin
  • ontology
  • polkadot
  • ravencoin
  • ripple
  • stellar
  • tezos
  • tronix
  • vechain
  • zcash

Installation

pip3 install coinaddrvalidator

Usage

>>> import coinaddrvalidator
>>> coinaddrvalidator.validate('btc', b'1BoatSLRHtKNngkdXEeobR76b53LETtpyT')
ValidationResult(name='bitcoin', ticker='btc', address=b'1BoatSLRHtKNngkdXEeobR76b53LETtpyT', valid=True, network='main', is_extended=False, address_type='address')

ValidationResult returns coin name and ticker, address, if the address is valid or not. In case network prefix bytes are defined for the checked currency, then the network is returned, too. If the coin supports that and the address is an extended key, it returns if it is valid or not. For some coins the address type can be guessed based on its format, which is returned as address_type. If there's none, 'address' is being returned as a default.

Extending

Currencies

To add a new currency, simply instantiate a new coinaddr.currency.Currency class. It will be automatically registered.

from coinaddrvalidator import Currency
Currency('decred', ticker='dcr', validator='DecredCheck',
        networks=dict(
            main=(0x073f,0x071a,0x02fda926), test=(0x0f21,0x0efc,0x043587d1)),
        address_types=dict(
            address=(0x073f,0x0f21), ticket=(0x071a,0x0efc),
            xpubkey=(0x02fda926,0x043587d1)))

To override a default currency, simply instantiate a new currency with that name.

Validators

To add a new validator, simply create a subclass of coinaddr.validation.ValidatorBase with your own implementation that implements the coinaddr.interfaces.IValidator interface. It will be automatically registered.

from zope.interface import implementer
from coinaddr.interfaces import IValidator
from coinaddr import ValidatorBase


@implementer(IValidator)
class NewValidator(ValidatorBase):
    name = 'New'

    @property
    def networks(self):
        return 'testing'

    def validate(self):
        return True

To override a default validator, simply create a new validator with that name.

Changes

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

coinaddrvalidator-1.2.3.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

coinaddrvalidator-1.2.3-py2.py3-none-any.whl (19.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file coinaddrvalidator-1.2.3.tar.gz.

File metadata

  • Download URL: coinaddrvalidator-1.2.3.tar.gz
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for coinaddrvalidator-1.2.3.tar.gz
Algorithm Hash digest
SHA256 8c81f30f5d87c21eedffd3e62995039082889e36b4c48a03ca4910c7623effc7
MD5 f72a19cefea0ff65acf980c18026c618
BLAKE2b-256 7e11994f84e04aeed8d29316b0e85c48d4845dc3e2c5f8bd320295b4ef115758

See more details on using hashes here.

File details

Details for the file coinaddrvalidator-1.2.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for coinaddrvalidator-1.2.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1794494144b6340cc92f490ba7338b3467d44b57efd978a1aae053990eecb1c8
MD5 098cf64f76409c8a9e333f8989c0d587
BLAKE2b-256 a6a918843718656a8e2ed0c6d217ce2130d56c890ab49ddcefa9ff200ee942f2

See more details on using hashes here.

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