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.0.tar.gz (18.2 kB view details)

Uploaded Source

Built Distribution

coinaddrvalidator-1.2.0-py2.py3-none-any.whl (19.3 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: coinaddrvalidator-1.2.0.tar.gz
  • Upload date:
  • Size: 18.2 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.0.tar.gz
Algorithm Hash digest
SHA256 056ab5320f694ae518b584b5174aa1f29bdc4701fae539c1dccd10daffe15205
MD5 3eb2fe1ef175b6ba0e2443bfbe676a9c
BLAKE2b-256 458c4cacb7a7277bf617546842cec9efbf7e5fcd2b7b30c748222662bceea4d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for coinaddrvalidator-1.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 49befe2ac60be158d4113d372cfa40d7910e6a63896bd50820db598219a966e1
MD5 794bf6fd0611076f76e30b8e0c42ce2f
BLAKE2b-256 72dfe136c42a862357b45f542fbe37034db97b5e283e6c337549b5d4ded0967a

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