๐ฆ AnyLedger Embedded Hardware 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, but the same architecture will be used for all the other chains. The current implementation is using Nordic nRF52840.
Any IoT device flashing the embedded wallet can safely connect to a given blockchain, do transactions and interact with smart contracts. The connection itself is given by AnyLedger Hub which, among the many functionalities, runs the blockchain nodes, the LWM2M server and gives access to storage solutions.
Future improvements in the pipeline: support for Trusted Execution Environment, FreeRTOS support, ESP32 support and more.
Have a look at our contribution guidelines.
apt-get install libgtest-dev g++ make cmake wget build-essential clang clang-tidy-3.8 ninja-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
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 [email protected]: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
directorymkdir samples/anyledger/ && git clone [email protected]: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.