cardanoex icon indicating copy to clipboard operation
cardanoex copied to clipboard

Elixir client for the Cardano wallet API

Cardanoex

Hex.pm Tests Coverage Status

Welcome to the documentation for Cardanoex.

The aim of this library is to offer a set of tools for interacting with Cardano blockchain platform in Elixir. It provides high level modules representing the Cardano environment, like wallets, addresses, transactions, native assets & stake pools.

It currently uses the REST protocol offered by the cardano-wallet binary.

This library is the implementation of the idea submitted to Catalyst project.

Prerequisites

  1. You need to have the cardano-wallet up and running

Installation

Add cardanoex to your list of dependencies in mix.exs:

def deps do
  [
    {:cardanoex, "~> 0.6.0"}
  ]
end

Configuration

In config/config.exs, add url to the cardano-wallet

config :cardanoex,
  wallet_base_url: "http://localhost:8090/v2"

Example usage

Create a wallet

name = "Wallet #1"
mnemonic = Util.generate_mnemonic()
pass = "Super_Secret3.14!"
    
{:ok, wallet} = Wallet.create_wallet(name: name, mnemonic_sentence: mnemonic, passphrase: pass)

List all transactions

{:ok, transactions} = Transaction.list(wallet.id)

Send a transaction

payments = %{
  passphrase: "Super_Secret3.14!",
  payments: [
          %{
            address:
              "addr_test1qqt6c697uderxaccgn...m64dsuzfj8f",
            amount: %{quantity: 1_000_000, unit: "lovelace"}
           }
  ]
}

{:ok, transaction} = Transaction.create(wallet.id, payments)

Donate

If you like to support the project with a donation, the address is: addr1qyfe0we0tkdu9qn8ztufplz0lmktgpx9zxnj54cd7y359wsyhwvjrl2zkf5cy72yv6p47f2gs5zglyplfggh6e5n4p0sdvvrng