bitsharesbase.account module

class bitsharesbase.account.Address(*args, **kwargs)

Bases: graphenebase.account.Address

Address class

This class serves as an address representation for Public Keys.

  • address (str) – Base58 encoded address (defaults to None)
  • pubkey (str) – Base58 encoded pubkey (defaults to None)
  • prefix (str) – Network prefix (defaults to BTS)


class bitsharesbase.account.BrainKey(*args, **kwargs)

Bases: graphenebase.account.BrainKey

Brainkey implementation similar to the graphene-ui web-wallet.

  • brainkey (str) – Brain Key
  • sequence (int) – Sequence number for consecutive keys

Keys in Graphene are derived from a seed brain key which is a string of 16 words out of a predefined dictionary with 49744 words. It is a simple single-chain key derivation scheme that is not compatible with BIP44 but easy to use.

Given the brain key, a private key is derived as:

privkey = SHA256(SHA512(brainkey + " " + sequence))

Incrementing the sequence number yields a new key that can be regenerated given the brain key.


Derive private key from the brain key (and no sequence number)


Derive private key from the brain key and the current sequence number

class bitsharesbase.account.PasswordKey(*args, **kwargs)

Bases: graphenebase.account.PasswordKey

This class derives a private key given the account name, the role and a password. It leverages the technology of Brainkeys and allows people to have a secure private key by providing a passphrase only.


Derive private key from the brain key and the current sequence number

class bitsharesbase.account.PrivateKey(*args, **kwargs)

Bases: graphenebase.account.PrivateKey

Derives the compressed and uncompressed public keys and constructs two instances of PublicKey:

  • wif (str) – Base58check-encoded wif key
  • prefix (str) – Network prefix (defaults to BTS)



Compressed vs. Uncompressed:

  • PrivateKey("w-i-f").pubkey:
    Instance of PublicKey using compressed key.
  • PrivateKey("w-i-f").pubkey.address:
    Instance of Address using compressed key.
  • PrivateKey("w-i-f").uncompressed:
    Instance of PublicKey using uncompressed key.
  • PrivateKey("w-i-f").uncompressed.address:
    Instance of Address using uncompressed key.
class bitsharesbase.account.PublicKey(*args, **kwargs)

Bases: graphenebase.account.PublicKey

This class deals with Public Keys and inherits Address.

  • pk (str) – Base58 encoded public key
  • prefix (str) – Network prefix (defaults to BTS)




By default, graphene-based networks deal with compressed public keys. If an uncompressed key is required, the method unCompressed can be used: