- Introduction of Wallet Storage concept:
- In v1.4 libindy allowed to plug different wallet implementations. Plugged wallet in v1.4 handled both security and storage layers. In contrast Libindy v1.5 restricts plugged interface by handling only storage layer. All encryption is performed in libindy. It simplifies plugged wallets and provides warranty of a good security level for 3d party wallets implementations.
- The format of wallet data was changed for better security and support of efficient search
- Added EXPERIMENTAL Wallet Export/Import API and corresponded commands to Indy CLI
indy_list_wallets
endpoint is DEPRECATED and will be removed in the next release. The main idea is avoid maintaining created wallet list on libindy side. It will allow to access wallets from a cluster and solve some problems on mobile platforms.indy_create_wallet
andindy_open_wallet
endpoints will also get related changes in the next release.- Added Non-Secrets API that allows store and read
application specific data in the wallet - Added EXPERIMENTAL Generic Payments API that provides ability to register custom payment method and then create payment addresses, build payment-related transactions, assign fees to transactions
- Added ability to load custom plugins using Indy CLI
- Added the set of commands in Indy CLI providing ability to perform
the main payments operations:
- Creation of payment address
- Listing of payment addresses
- Getting list of UTXO for payment address
- Sending payment transaction
- Adding fees to transactions
- Getting transactions fees amount
- Implemented simple Nullpay payment plugin that provide experience similar to real payments system
- Implemented publishing of Ubuntu and Windows packages for
Nullpay
plugin - Added new Ledger API endpoints and corresponded commands in Indy CLI
- GET Validator Info request builder
- Restart POOL request builder
- Add Multi Signature to request
- Optimized Pool connection process. Libindy v1.5 uses cache of Pool Ledger to speed up opening pool operation.
- Bugfixes
Notes:
- There is migration guide about API changes
- Wallet format of libindy v1.5 isn't compatible with a wallet format of libindy v1.4. As result it is impossible to use wallets created with older libindy versions with libindy v1.5.
- Tails handling contains breaking-change hotfix and blob-storage tails files generated by v1.4 is incompatible with 1.5.
- Indy CLI tool added
- Switching from DID-based crypto to keys-based crypto:
- All DID-based crypto functions (
signus
module) are removed - Added key-based
crypto
module - Added functions to resolve keys for DIDs
- All DID-based crypto functions (
- Agent API moved into
crypto
module - Support the latest version of CL crypto (through
indy-crypto
library):- Added nonce for all protocol steps
- Added consistency proofs for protocol steps
- Representation of Proofs changed (sub-proofs now are ordered)
- Support of complete Credentials Revocation workflow in Anoncreds API:
- Support large Tails handling through BlobStorage API
- Support new Revocation transactions
- Add calls for remote Witness calculation
- State-less approach in Credential issuance process
- Unified reference approach for Anoncreds entities
- Extend DID API: added some methods for iteration over entities in the wallet.
- Bugfixes
Notes:
- There is migration guide about API changes
- The changes for Credential Revocation invalidates any Anoncreds made with SDK 1.3. They must be reissued
- This release is intended for development purposes only. The 1.5.0 release of the SDK will contain changes to the wallet format. If you plan to put durable artifacts in the wallet, let us know so we can discuss migration to the future format
- Encryption option for default wallet is added
- indy_key_for_local_did added
- Replaced Agent2Agent API
- New Crypto API
- Updated Signus API
- Initial release