🏦 AnyLedger Embedded Wallet for Internet of Things
C crypto libraries to safely manage, generate and store private keys, to generate blockchain addresses and to sign transactions.
Additionally, it contains a RTOS app (Zephyr). The current implementation uses Ethereum and HyperLedger, but the same architecture will be used for all the other chains. The current implementation supports 100+ hardware platforms and is mainly bug tested on Nordic nRF52840.
Any IoT device flashing the embedded wallet can safely connect to a given blockchain, do transactions and interact with smart contracts.
Have a look at our contribution guidelines.
On a fresh Ubuntu:18.04 docker image. Adapt as appropriate to your distro.
apt-get update
apt-get install libgtest-dev g++ make cmake wget build-essential clang clang-tidy ninja-build git python3-pip protobuf-compiler python-protobuf -y
# Ubuntu's libgtest-dev is only the source. You have to compile them manually.
cd /usr/src/gtest; cmake .; cmake --build . --target install
# Install Ethereum Solidity compiler
apt-get install software-properties-common -y && add-apt-repository ppa:ethereum/ethereum -y && apt-get update
apt-get install solc -y
# without this, you will get a Python 3 ASCII/UTF8 error on Ubuntu
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
cd /
git clone https://github.com/AnyLedger/anyledger-wallet
alias build='rm -rf build; mkdir build; cd build; cmake -GNinja ../; ninja; cd ..'
cd anyledger-wallet; pip3 install --user -r requirements.txt; build
GTest:
git clone https://github.com/google/googletest
cd googletest
mkdir build
cd build
cmake ..
make
make install
Additional dependencies (installed using Homebrew):
brew install gcc make cmake wget ninja nanopb-generator protobuf pkgconfig
pip3 install --user -r requirements.txt
A working solc should be available in your $PATH. See the Installation instructions.
This build is used to develop and test the wallet library on your desktop.
clone wallet repo git clone git@github.com:AnyLedger/anyledger-wallet.git && cd anyledger-wallet
create build directory and generate build targets mkdir build && cd build && cmake -GNinja ../
compile the library & run the tests ninja && ctest
Prerequisites: a working zephyr SDK (at least v0.9.5), see here for instructions. Please make sure you can compile and flash at least blinky example before building the wallet.
clone wallet repo to the zephyr's samples directory mkdir samples/anyledger/ && git clone git@github.com:AnyLedger/anyledger-wallet.git
create build directory and generate build targets cd samples/anyledger/anyledger-wallet/build && cmake -GNinja -DBOARD=nrf52840_pca10056 -DBUILD_XCOMPILE=1 ../
compile & flash the firmware ninja && ninja flash
To start AnyLedger wallet using a QEMU virtual machine, see here.