Cryptography Clients


We recommend using each languages' standards for dependency management and builds and attempt to make our SDKs compatible with current practices for each language.

Below are useful links to get started with each SDK:

    Development Setup

    If you want to contribute to the code of this SDK, execute the following commands:


      Depending on the library, you must import and initialize it in a specific way.


        A transaction is an object specifying the transfer of funds from the sender's wallet to the recipient's. Each transaction must be signed by the sender's private key to prove authenticity and origin. After broadcasting through the client SDK, a transaction is permanently incorporated in the blockchain by a Delegate Node.


        The crypto SDK can sign a transaction using your private key or passphrase (from which the private key is generated). Ensure you are familiar with digital signatures before using the crypto SDKs.

          Serialize (AIP11)

          Serialization of a transaction object ensures it is compact and properly formatted to be incorporated in the ARK blockchain. If you are using the crypto SDK in combination with the public API SDK, you should not need to serialize manually.

            Deserialize (AIP11)

            A serialized transaction may be deserialized for inspection purposes. The public API does not return serialized transactions, so you should only need to deserialize in exceptional circumstances.


              The crypto SDK not only supports transactions but can also work with other arbitrary data (expressed as strings).


              Signing a string works much like signing a transaction: in most implementations, the message is hashed, and the resulting hash is signed using the private key or passphrase.


                A message's signature can easily be verified by hash, without the private key that signed the message, by using the verify method.


                  The identities class allows for the creation and inspection of keypairs from passphrases. Here you find vital functions when creating transactions and managing wallets.

                  Derive the Address from a Passphrase

                    Derive the Address from a Public Key

                      Derive the Address from a Private Key

                        Validate an Address

                          Private Key


                          As the name implies, private keys and passphrases are to remain private. Never store these unencrypted and minimize access to these secrets

                          Derive the Private Key from a Passphrase

                            Derive the Private Key Instance Object from a Hexadecimal Encoded String

                              Derive the Private Key from a WIF

                                Public Key


                                Public Keys may be freely shared, and are included in transaction objects to validate the authenticity.

                                Derive the Public Key from a Passphrase

                                  Derive the Public Key Instance Object from a Hexadecimal Encoded String

                                    Validate a Public Key



                                      The WIF should remain secret, just like your passphrase and private key.

                                      Derive the WIF from a Passphrase