peerplaysbase.account module

class peerplaysbase.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 PPY)


class peerplaysbase.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.

class peerplaysbase.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 peerplaysbase.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 PPY)



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 peerplaysbase.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 PPY)




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