ariadne
ariadne copied to clipboard
An open source Ada wallet for users who need more
Ariadne
ARIADNE IS TEMPORARILY FROZEN, NOBODY IS WORKING ON IT, BUT WE HOPE TO RESUME OUR WORK ON IT LATER
Ariadne is a cryptocurrency wallet developed by Serokell. It has two user interfaces: terminal user interface (TUI) and graphical user interface (GUI). At the time being it supports only the Cardano cryptocurrency, but there are plans to support multiple currencies in the future.
Features ↑
- [x] Wallet management
- [x] BIP-39 mnemonics
- [x] BIP-44 compatibility
- [ ] Compatibility with Daedalus
- [x] Balances of wallets, accounts, address
- [ ] Transaction history
- [x] Transaction sending
- [x] Spending passwords
- [x] Optimized block storage (compared to Daedalus)
- [x] Knit language
- [x] Notifications about new software versions
- [ ] Automatic software updates
- [ ] Integration with hardware wallets
- [ ] Staking and delegation
Wallet management
Create or delete a hierarchical deterministic (HD) wallet (BIP-32) or an account inside a wallet. Generate a new address inside an account. Wallets and accounts have names.
BIP-39 mnemonics
Ariadne uses the BIP-39 specification to work with mnemonics. When you generate a new wallet, you will see a mnemonic which you should save into a reliable place. Later you can use this mnemonic to restore your wallet. Number of words in mnemonic is configurable.
BIP-44 compatibility
Addresses are generated according to the BIP-44 specification. This derivation scheme is one of the most commonly used schemes in cryptocurrency wallets.
Compatibility with Daedalus
Unfortunately Ariadne is not compatible with Daedalus due to differences in HD derivation schemes. It means that you can't use your existing wallet generated by Daedalus. However, you can send a transaction from your existing wallet to your new Ariadne wallet. We plan to provide limited support for derivation schemes different from BIP-44 so that you'll be able to use a wallet generated by Daedalus in Ariadne.
Get the balance of a wallet/account/address
It's possible to see the balance of any of your wallets, accounts and addresses.
Transaction history
Transaction history is not supported yet.
Transaction sending
Transactions can be sent from a whole wallet or a set of accounts belonging to a wallet. More than one output can be specified.
Spending passwords
Each wallet can be protected with its own spending password. It's impossible to send a transaction from a wallet if one doesn't know its spending password.
Optimized block storage
Daedalus stores blocks in plain files. Each block is stored in its own file. Since number of blocks is large, it leads to excessive fragmentation. Ariadne stores blocks in a RocksDB database. It reduces number of files by order of magnitude and the size of block database is about 8 times smaller.
Knit
All actions correspond to commands in the Knit language and can be typed in a console. Advanced users can execute Knit commands instead of using UI. The console supports completion.
Notifications about new software versions
If a new version of Ariadne is released, you will see a notification in UI.
Automatic software updates
Later it will be possible to automatically download and install software updates when a new version is released.
Integration with hardware wallets
We plan to support hardware wallets in the future.
Staking and delegation
Staking and delegation will be supported in Ariadne after they are specified and implemented in the core protocol.
Building from Source Code ↑
Supported platforms
Both GUI and TUI versions work on Linux on MacOS. Windows will be supported soon (only GUI version).
It's recommended to build Ariadne using Nix. It's also possible to do it using just Stack, but this way works only on Linux.
Build using Nix
Set up Serokell binary cache so that you don't have to build
dependencies.
If you are on a single-user Nix install (nix-shell -p nix-info --run nix-info
should say multi-user?: no), omit sudo in the command below.
sudo $(nix-build pkgs.nix -A cachix --no-out-link)/bin/cachix use serokell
If you are on NixOS, make sure to add https://cache.nixos.org to nix.binaryCaches,
otherwise main Nix binary cache stops working. See cachix/cachix#128.
Then, install Nix with NixOS/nix#2409 patch:
nix-env -f pkgs.nix -iA nix
For production builds, run nix-build -A ariadne-vty-app or
nix-build -A ariadne-qt-app to build TUI or GUI applcation
respectively.
For incremental builds, run nix-shell. Then, use either stack build or
cabal new-build all as you normally would. This will only build local packages,
all dependencies are managed by Nix.
Build using Stack
- Install Stack.
- Make sure you have the libraries listed below installed. This list might be incomplete.
- RocksDB
- OpenSSL
- Qt 5 (if you want to build GUI)
- ICU
- Run
stack build ariadne-vty-appto build terminal text-based interface andstack build ariadne-qt-appfor Qt-based GUI. Or juststack buildfor both.
Configuration ↑
Ariadne is configurable via configuration files and command line options. Default configuration is provided out of the box and is compatible with Cardano SL mainnet. That should be sufficient in many cases. Detailed description of Ariadne configuration can be found in the corresponding document.
Usage ↑
Launch ariadne executable to use TUI. In order to use GUI launch
ariadne-qt.
If you used nix-build to build Ariadne you should have ariadne or
ariadne-qt executable in result/bin folder. You can run
result/bin/ariadne executable directly. In order to use GUI version
do nix-shell shell-native.nix --run result/bin/ariadne-qt.
If you used Stack to build Ariadne (be it with Nix or not), type stack exec -- <executable_name> to launch the corresponding executable.
For complete usage guide visit TUI or GUI page.
Issue tracker ↑
~We use YouTrack as our issue tracker. You can login using your GitHub account to leave a comment or create a new issue.~
Since the project is currently frozen, we have temporarily enabled GitHub issue tracker. You can use it to report issues, but they can be resolved only after we resume our work on the project.
For Contributors ↑
Please see CONTRIBUTING.md for more information.
About Serokell ↑
Ariadne is maintained and funded with :heart: by Serokell. The names and logo for Serokell are trademark of Serokell OÜ.
We love open source software! See our other projects or hire us to design, develop and grow your idea!