Releases: cardano-foundation/cardano-wallet
v2023-12-18
Compatible with [email protected]
.
Changes
Added
- One change address mode to reduce resource consumption of Shelley- and Shared-style wallets #4129
- Ability to filter transactions by address in
GET /wallet/{wid}/transactions
#4004 - Ability to mint/burn assets using scripts from reference inputs #4074 #4086 #4114
- 🏗️ HTTP API extensions in preparation for Voltaire support #4236
- 🏗️ HTTP API extensions in preparation for metadata encryption #4176
Changed
- Fix inconsistency between the current epoch in the tip and delegation status within the wallet API response #4205
- Now compatible with
[email protected]
instead of[email protected]
Deprecated
- The
recovery-phrase
,address
andkey
CLI utilities previously re-exported fromcardano-addresses
. Please usecardano-addressees
instead.
API Changes
https://bump.sh/doc/cardano-wallet-diff/changes#event-change-1e3bb3d5-e168-4a12-ba28-c9b0cf31ef96
Show API changes
Modified: GET /byron-wallets/{walletId}/transactions
Query parameter added: address
Modified: GET /byron-wallets/{walletId}/utxo
Response modified: 200
Content type modified: application/json
Attribute modified: entries
Modified: GET /shared-wallets/{walletId}/transactions
Query parameter added: address
Modified: GET /shared-wallets/{walletId}/utxo
Response modified: 200
Content type modified: application/json
Attribute modified: entries
Modified: GET /wallets/{walletId}/transactions
Query parameter added: address
Modified: GET /wallets/{walletId}/utxo
Response modified: 200
Content type modified: application/json
Attribute modified: entries
Modified: POST /shared-wallets
Content type modified: application/json
Alternative modified: Create shared wallet from mnemonics
Attribute added: one_change_address_mode
Modified: POST /shared-wallets/{walletId}/transactions-construct
Content type modified: application/json
Attribute modified: mint_burn
Alternative added: minting via script reference
Attributes added: encrypt_metadata, vote, reference_policy_script_template
Modified: POST /shared-wallets/{walletId}/transactions-decode
Content type modified: application/json
Attribute added: decrypt_metadata
Modified: POST /wallets
Content type modified: application/json
Alternative modified: shelley
Attribute added: one_change_address_mode
Modified: POST /wallets/{walletId}/transactions-construct
Content type modified: application/json
Attribute modified: mint_burn
Alternative added: minting via script reference
Attributes added: encrypt_metadata, vote, reference_policy_script_template
Modified: POST /wallets/{walletId}/transactions-decode
Content type modified: application/json
Attribute added: decrypt_metadata
Modified: PUT /wallets/{walletId}
Content type modified: application/json
Attribute added: one_change_address_mode
Added: PUT /shared-wallets/{walletId}
Known Issues
- (ADP-2953) Revision of
cardano-node
is not reported within version in release bundle binary for Windows. - (ADP-2635) Database connections do not seem to gracefully terminate on stopping the wallet.
- (ADP-2298)
Deposit_returned
is falsely reported on some incoming transactions (intermittently). - (ADP-1831)
cardano-wallet
version from docker image does not report revision.
Installation Instructions
-
Install
[email protected]
. -
Download the provided
cardano-wallet
for your platform, and uncompress it in a directory that is on your$PATH
, e.g./usr/local/bin
. Or%PATH%
on Windows. -
Start
cardano-wallet --help
and see available parameters.
Docker
Pull from DockerHub and verify the version matches 2023.12.18.
$ docker pull cardanofoundation/cardano-wallet:2023.12.18
$ docker run --rm cardanofoundation/cardano-wallet:2023.12.18 version
Signatures
Name | Role | Approval |
---|---|---|
Heinrich Apfelmus @HeinrichApfelmus | Software Engineer | ✔️ |
Paolo Veronelli @paolino | Software Engineer | ✔️ |
Yura Lazaryev @Unisay | Software Engineer | ✔️ |
v2023-07-18
Compatible with [email protected]
.
Changes
Fixed
- Update links in Readme after repository moved to
cardano-foundation
. (PR 3999)
Changed
- Change organization from
inputouput
tocardanofoundation
for Docker image. (PR 4026 and ADP-3085) - Remove the input selection limit from coin selection. (PR 3921 and ADP-3029)
- When starting an updated
cardano-wallet
with an old database file, the tables containing delegation certificates will be migrated to a new format. (PR 3967 and ADP-3054)
Added
- Enabled delegation action for multisig wallets. Delegation is supported for construct, decode, sign and submit. (PR 3830 and ADP-2602)
- Enabled discovery and withdrawing of rewards for multisig wallets. (PR 3872, PR 3925 and ADP-2604, ADP-2603)
⚠️ When starting an updatedcardano-wallet
with an old database file, this database file will be migrated and can no longer be used with old versions ofcardano-wallet
. However, before migration, a backup copy of your old database file will now be created. (PR 3993, PR 3985 and ADP-3058)
Removed
-
Dropped support for creating transactions in Alonzo or older eras across all endpoints. (PR 3889 and ADP-2913)
- The error
balance_tx_era_not_supported
has been replaced bynode_not_yet_in_recent_era
.
- The error
-
Drop support for balancing transactions in eras more recent than the node tip. (PR 3923 and ADP-2990)
API Changes
https://bump.sh/doc/cardano-wallet-diff/changes#event-change-1bf4ed8f-909a-4084-baf7-113879d74334
Show API changes
-
Modified:
GET /network/parameters
-
200
response was modified-
execution_unit_prices
attribute was modified
-
-
-
Modified:
POST /shared-wallets
-
500
response was added
-
-
Modified:
POST /shared-wallets/{walletId}/transactions-construct
-
403
response was modified-
staking_invalid
alternative was added
-
-
-
Modified:
POST /wallets/{walletId}/transactions-balance
-
400
response was modified-
inline_scripts_not_supported_in_alonzo
,inline_datums_not_supported_in_alonzo
alternatives were removedBreaking
-
-
403
response was modified-
node_not_yet_in_recent_era
,tx_not_in_node_era
alternatives were addedBreaking -
balance_tx_era_not_supported
,balance_tx_max_size_limit_exceeded
alternatives were removedBreaking
-
-
-
Modified:
POST /wallets/{walletId}/transactions-construct
-
403
response was modified-
staking_invalid
alternative was added
-
-
Known Issues
- (ADP-2953) Revision of cardano-node is not reported within version in release bundle binary for Windows.
- (ADP-2635) Database connections does not seem to be gracefully terminated on stopping the wallet.
- (ADP-2298) Deposit_returned is falsely reported on some incoming transactions (intermittently).
- (ADP-1831) cardano-wallet version from docker image does not report revision.
- (ADP-1148) error "restoreBlocks: given chain isn't a valid continuation" when quickly creating new wallets after startup.
- (ADP-1052) Occasional invalid transaction error (MaxTxSizeUTxO) on wallets with big amounts of assets.
- (ADP-776) High memory usage observed in SPO testnet wallet.
- (ADP-773) Rare SQLite3 constraint errors when making transactions.
- (ADP-772) On really large wallets, postTransaction is slow and sometimes returns transaction_is_too_big.
- (ADP-571) Multi-addresses transactions sometimes result in an internal server error.
Documentation
📕 | 💻 | 🐳 |
---|---|---|
API Documentation | CLI Manual | Docker Manual |
Installation Instructions
-
Install
[email protected]
. -
Download the provided
cardano-wallet
for your platform, and uncompress it in a directory that is on your$PATH
, e.g./usr/local/bin
. Or%PATH%
on Windows. -
Start
cardano-wallet --help
and see available parameters.
Docker
Pull from DockerHub and verify the version matches 2023.7.18.
$ docker pull inputoutput/cardano-wallet:2023.7.18
$ docker run --rm inputoutput/cardano-wallet:2023.7.18 version
Signatures
Name | Role | Approval |
---|---|---|
Yura Lazarev @Unisay | Software Engineer | ✔️ |
Heinrich Apfelmus @HeinrichApfelmus | Software Engineer | ✔️ |
Paolo Veronelli @paolino | Software Engineer | ✔️ |
v2023-04-14
Compatible with [email protected]
.
Changes
Fixed
- The listStakePools endpoint no longer returns null values for the
metadata
andretirement
fields if no data is available. Instead, if no data is available, these fields are simply omitted from the JSON response. This fixes a regression introduced in the v2022-12-14 release. (ADP-2523, PR 3675) - When the wallet decodes a transaction that includes native scripts (that act as witnesses and contain key hashes):
- If the key hash belongs to the wallet (i.e., it is an "internal" hash), the wallet will mark these as belonging to the wallet and use an appropriate bech32 prefix in the JSON representation:
policy_vkh
addr_shared_vkh
stake_shared_vkh
- If the key hash does not belong to the wallet (i.e., it is an "external" hash), the wallet will represent these hashes with hexadecimal values, and not include a bech32 prefix in the JSON representation.
- If the key hash belongs to the wallet (i.e., it is an "internal" hash), the wallet will mark these as belonging to the wallet and use an appropriate bech32 prefix in the JSON representation:
This brings the wallet into compliance with CIP-0005 and CIP-1855.
The following endpoints are affected:
- Incomplete shared wallet is no longer silently syncing in background (ADP-2432, PR 3676)
- Tx history not available after receiving token from minting transaction made using reference script (ADP-2666)
- Unexpected "balance_tx_underestimated_fee" on the preprod Shelley/Shared wallet (ADP-2646)
Changed
⚠️ When starting an updatedcardano-wallet
with an old database file, all transactions that hadPending
orExpired
status will be forgotten about, so that the wallet will not attempt to re-submit these transactions. (Note that these transactions can still reappear withInLedger
status). This is due to an internal database migration. While inconvenient, user impact should be small, as:- this database migration will be performed only once (during the first startup of the updated wallet); and
- most
Pending
transactions will have expired naturally before the user opens their wallet again.
⚠️ When starting an updatedcardano-wallet
with an old database file, this database file will be migrated and can no longer be used with old versions ofcardano-wallet
. If you wish to revert to an old version of the software, please make a backup of the database file, or you will have to restore your wallets from scratch. (ADP-2367, PR 3717)- The transaction history is now stored on-disk again, reducing RAM usage at the expense of query time. (ADP-2780, PR 3763; ADP-2871, PR 3828)
- Fees are now reported for all transactions, both incoming and outgoing, in the transaction history. Previously, fees were only reported on outgoing transactions. However, please note that for transactions made during the Byron era, the fee will still be reported as 0. (ADP-2840)
Added
- User documentation for shared wallets. (ADP-2457)
- New endpoints for shared wallets (ADP-2636):
- Add an optional limit
max_count
to the number of transactions returned byGET /transactions
endpoint. This is useful to limit the resource consumption of this endpoint for large wallets. (ADP-2788, PR 3772)
Removed
- Removed all references to the stack build tool from user documentation, replacing these references with equivalent instructions to build with cabal (and nix) instead. (ADP-2102, PR 3671)
- Removed Blockfrost-related CLI options from the
cardano-wallet
executable, and all support for Blockfrost from Cardano Wallet. (ADP-2272, PR 3668)
API Changes
https://bump.sh/doc/cardano-wallet-diff/changes#event-change-95213dc1-6199-451f-80d8-b9898e7bb0d7
Known Issues
- error "restoreBlocks: given chain isn't a valid continuation" when quickly creating new wallets after startup (ADP-1148)
- Occasional invalid transaction error (MaxTxSizeUTxO) on wallets with big amounts of assets (ADP-1052)
- High memory usage observed in SPO testnet wallet (ADP-776)
- Rare SQLite3 constraint errors when making transactions (ADP-773)
- On really large wallets, postTransaction is slow and sometimes returns transaction_is_too_big (ADP-772)
- Multi-addresses transactions sometimes result in an internal server error. (ADP-571)
Documentation
📕 | 💻 | 🐳 |
---|---|---|
API Documentation | CLI Manual | Docker Manual |
Installation Instructions
-
Install
[email protected]
. -
Download the provided
cardano-wallet
for your platform, and uncompress it in a directory that is on your$PATH
, e.g./usr/local/bin
. Or%PATH%
on Windows. -
Start
cardano-wallet --help
and see available parameters.
Docker
Pull from DockerHub and verify the version matches 2023.4.14.
$ docker pull inputoutput/cardano-wallet:2023.4.14
$ docker run --rm inputoutput/cardano-wallet:2023.4.14 version
Signatures
Name | Role | Approval |
---|---|---|
Yura Lazarev @Unisay | Software Engineer | ✔️ |
Piotr Stachyra @piotr-iohk | QA Engineer | ✔️ |
Laurence Jenkins @LaurenceIO | Release Manager | ✔️ |
v2022-12-14
Compatible with [email protected]
.
Changes
Fixed
-
When estimating sizes of transactions with native scripts, fee estimation is now correct. (PR 3502)
-
Documentation has been updated to remove references to
testnet
, which is now deprecated. (PR 3540)
Changed
-
When using the Cardano Wallet REST API to construct a transaction, if a user-specified output has a quantity of lovelace that is greater than zero, but less than the minimum required by the ledger, Cardano Wallet will now return a machine-readable JSON error object with the minimum required quantity encoded as a separate
info
field. Previously, the minimum required quantity was embedded within themessage
field string, which made it hard to parse. (PR 3557, ADP-2299)- The following endpoints are affected:
- Example of updated error schema:
{ "code": "utxo_too_small" , "message": "..." + , "info": + { "tx_output_index": 0 + , "tx_output_lovelace_specified": + { "quantity": 1000000 + , "unit": "lovelace" + } + , "tx_output_lovelace_required_minimum": + { "quantity": 1234567 + , "unit": "lovelace" + } + } }
-
The API error
withdrawal_not_worth
has been renamed towithdrawal_not_beneficial
. (PR 3583)- The following endpoints are affected:
-
The
balanceTransaction
endpoint will now increase 0-ada outputs (outputs without any ada quantities) to the minimum ada quantity required by the ledger. This behaviour is now consistent with other wallet transaction creation endpoints. Consequently, the API errorbalance_tx_zero_ada_output
has been removed. (ADP-2347) -
The
constructTransaction
endpoint can now succeed in a greater range of situations:- By default,
constructTransaction
will first attempt to use the pre-existing optimal coin selection strategy. When using the optimal strategy, the wallet’s coin selection algorithm will attempt to select around twice the minimum possible amount of each asset from the available UTxO set, making it possible to generate change outputs that are roughly the same sizes and shapes as user-specified outputs. - If using the optimal strategy results in a transaction that is too large or too costly,
constructTransaction
will now automatically fall back to the minimal coin selection strategy. When using the minimal strategy, the wallet’s coin selection algorithm will only select just enough of each asset from the available UTxO set to meet the minimum amount. The selection process will terminate as soon as the minimum amount of each asset is covered. - This enhancement has been made possible by an internal restructuring of the wallet’s transaction construction logic: internally,
constructTransaction
now reusesbalanceTransaction
, which can now automatically fall back to the minimal coin selection strategy in some situations.
- By default,
Added
-
When listing or fetching transactions through the HTTP REST API, pool delegation certificates, pool registration certificates, pool de-registration certificates, mint and burn values, script integrity hashes, validity intervals, and required extra signatures are now included. (ADP-1963, PRs)
- The following endpoints are affected:
-
Multi-party signing for multi-signature wallets. Support for this is currently functional, but experimental.
-
The
ApiDecodedTransaction
object now has awitnessCount
field, which enumerates all the witnesses present in a given transaction, including verification keys and script witnesses. (PR 3529)- The following endpoints are affected:
-
Added new endpoints
getSharedTransaction
andlistSharedTransactions
for multisig wallets. (PR 3577, ADP-2224) -
Introduced standard bech32 prefixes (
acct_shared_xvk
) for extended account public keys over the whole shared wallet cycle (POST
/PATCH
/GET
). Previously these keys were hex-encoded, but now these keys conform to the CIP-5 specification. (PR 3599, ADP-2332)
Removed
- We’ve dropped support for balancing transactions in old eras. We now only support balancing transactions in the two latest eras: Alonzo and Babbage. Support for Shelley, Allegra, and Mary has been dropped. (PR 3525)
API Changes
https://bump.sh/doc/cardano-wallet-diff/changes/4f97ece4-282f-421a-9268-fd1705546b49
Show API changes
-
Added:
GET /shared-wallets/{walletId}/transactions
-
Added:
GET /shared-wallets/{walletId}/transactions/{transactionId}
-
Modified:
DELETE /stake-pools/*/wallets/{walletId}
-
202
response was modified-
certificates
,mint
,burn
,validity_interval
,script_integrity
,extra_signatures
attributes were added
-
-
- Modified:
v2022-10-06
This release is compatible with the Babbage Era of the Cardano network. It is ready to be deployed, tested, and implemented in your products.
However, some features that are specific to the Babbage Era are still under construction, see 🏗 below.
Compatible with [email protected]
.
Changes
Fixed
-
Creating a Byron address no longer fails intermittently. If an address was not created explicitly by the user, the wallet would sometimes create it implicitly as a change address, leading to misattribution of funds in some exchange use cases. (ADP-2211, ADP-2283, PR 3528)
-
Fee calculation performance deterioration. (ADP-2144 / PR 3456)
-
Patched shared wallets have the correct address gap and address pool.
(ADP-2219, PR-3500).
Changed
-
All REST API endpoints involving transaction construction now have additional documentation to explain how the wallet handles minimum UTxO values for user-specified transaction outputs. (ADP-2250 / PR 3524)
-
Improved validation and resolution of user-provided inputs in POST /wallet/{wid}/transactions-balance. Two new errors were added:
unresolved_inputs
andinput_resolution_conflicts
. These replace behaviour that was previously undefined. (ADP-1662 / PR 3475) -
Reintroduced database blocking in light-mode, preventing concurrent API calls. (PR 3528)
Added
-
Preliminary sign, decode, and submit endpoints for shared wallets. (ADP-1850, PR-2425, PR-3499).
-
Support for new transaction workflow that makes it possible for construction, signing and submission to be performed in separate steps. This process also includes support for balancing and decoding.
(ADP-2083, PR-3449). -
Support for using scripts and non-extended keys when constructing addresses. This is in addition to the existing support for script hashes, extended keys and key hashes.
(ADP-2114, PR-3435).
Removed
API Changes
https://bump.sh/doc/cardano-wallet-diff/changes/a36a1baa-66a6-42df-a4e3-c6627d6b7a57
Show API changes
-
Added:
GET /blocks/latest/header
-
Added:
POST /shared-wallets/{walletId}/transactions-sign
-
Added:
POST /shared-wallets/{walletId}/transactions-submit
-
Modified:
GET /network/parameters
-
200
response was modified-
minimum_utxo_value
attribute was removed⚠️ Breaking⚠️
-
-
-
Modified:
POST /byron-wallets/{walletId}/transactions
-
425
response was added
-
-
Modified:
POST /shared-wallets/{walletId}/transactions-construct
-
body was modified
-
encoding
attribute was added
-
-
body was modified
-
Modified:
POST /wallets/{walletId}/transactions
-
425
response was added
-
-
Modified:
POST /wallets/{walletId}/transactions-balance
-
body was modified
-
encoding
attribute was added
-
-
400
response was modified- input_resolution_conflicts alternative was added
-
body was modified
-
Modified:
POST /wallets/{walletId}/transactions-construct
-
body was modified
-
encoding
attribute was added
-
-
body was modified
-
Modified:
POST /wallets/{walletId}/transactions-sign
-
body was modified
-
encoding
attribute was added
-
-
body was modified
Known Issues
- Light-mode currently does not work. (ADP-2285)
- Database benchmarks are failing. (ADP-2202)
FeeTooSmallUTxO
error when submitting transaction from shared wallet. (ADP-2221)- Problem with
stake-pool.sqlite
/pools-engine
sync after upgrading tocardano-wallet
v2022-08-16
and large memory usage. (ADP-2227) - 🏗
balanceTransaction
does not yet support balancing transactions with total collateral or collateral return set, but will fail gracefully. (ADP-1684, ADP-1685) - 🏗
balanceTransaction
does not yet fully support balancing transactions with reference inputs or inline datums. (ADP-1655) - Occasional invalid transaction error (MaxTxSizeUTxO) on wallets with big amounts of assets. (ADP-1052)
- High memory usage observed in SPO testnet wallet. (ADP-776)
- Rare SQLite3 constraint errors when making transactions. (ADP-773)
- On really large wallets,
postTransaction
is slow and sometimes returnstransaction_is_too_big
. (ADP-772) - Fee estimation slowness (up to 4x slower when there are many wallets, comparing with old selection algorithm). (ADP-702)
- Wallet restoration time deteriorated 2x in
v2021-01-28
. (ADP-690) - Wallet disappears after migration from `v202...
v2022-08-16
This release is compatible with the Babbage Era / Vasil HF of the Cardano network, ready to be deployed, tested, and implemented in your products.
However, some features that are specific to the Babbage Era are still under construction, see 🏗 below.
Compatible with [email protected]
.
Changes
Added
- Support for cardano-node 1.35.3 (PR 3382, PR 3404, PR 3421, PR 3428).
- POST /addresses now also supports constructing addresses from verification key hashes (
stake_vkh
,addr_vkh
) and does not require the full keys anymore (PR 3420). - Support for network identification in GET /network/information for fields
protocol_magic
andnetwork_id
. (PR 3397). - Support for post transaction in light-mode. POST /wallets/{walletId}/transactions-submit now works in light-mode (PR 3418). However, there are two differences to node-mode
- We do not block and retry like we do with node
- A 425 is returned if blockfrost is returning it in case of mempool full
- GET /network/information now reports a
wallet_mode
in the response reflecting the flag mode in the server CL arguments (PR 3419). - Added documentation on the security model of cardano-wallet (PR 3396).
Changed
-
The wallet now uses the Cardano API
calculateMinimumUTxO
function for all minimum UTxO calculations. This ensures that as we transition from the Alonzo era to the Babbage era, the wallet and ledger minimum UTxO validation rules will continue to be consistent with one another. (See: ADP-1978, ADP-2039, PR 3368, PR 3388, PR 3416, PR 3422, PR 3423, PR 3426)Details:
- When using the wallet to build or balance a transaction, any user-specified payment outputs will be subject to the same minimum UTxO validation rule as the ledger.
- The minimum UTxO validation rule is era-dependent:
- In the Alonzo era:
- the validation rule depends on the
coinsPerUTxOWord
protocol parameter.
- the validation rule depends on the
- In the Babbage era:
- the validation rule depends on the
coinsPerUTxOByte
protocol parameter.
- the validation rule depends on the
- In the Alonzo era:
- The wallet will only reject an ada quantity that is too low if the ledger would also reject that ada quantity.
- As with previous versions of the wallet, if validation fails, then the wallet will return an
HTTP 403 Forbidden
utxo_too_small
error. - This validation rule is used in the following end points:
- The definition of the field
minimum_utxo_value
in GET /network/parameters has been revised — it now reports the absolute minimum; any actual UTxO value will likely need to be higher in order to be accepted by the Cardano ledger.
-
Transactions which are valid in both Alonzo an Babbage are now signed, balanced and submitted in the current node era, instead of always in Alonzo (PR 3391).
Fixed
- Current slotting parameters now are reported correctly in light-mode (PR 3415).
- Reduce database blocking in light-mode, allowing concurrent API requests again (PR 3399).
API Changes
https://bump.sh/doc/cardano-wallet-diff/changes/bb984355-1995-46a0-8343-a8440baa5eaf
Show API changes
-
Added:
POST /shared-wallets/{walletId}/transactions-construct
-
Added:
POST /shared-wallets/{walletId}/transactions-decode
-
Modified:
GET /network/information
-
200
response was modified-
network_info
,wallet_mode
body attributes were added
-
-
-
Modified:
POST /proxy/transactions
-
425
response was added
-
-
Modified:
POST /wallets/{walletId}/transactions-submit
-
425
response was added
-
Known Issues
- Fee calculation performance deterioration (ADP-2144)
- 🏗
balanceTransaction
does not yet support balancing transactions with total collateral or collateral return set, but will fail gracefully (ADP-1684, ADP-1685) - 🏗
balanceTransaction
does not yet fully support balancing transactions with reference inputs or inline datums (ADP-1655) - Occasional invalid transaction error (MaxTxSizeUTxO) on wallets with big amounts of assets (ADP-1052)
- High memory usage observed in SPO testnet wallet (ADP-776)
- Rare SQLite3 constraint errors when making transactions (ADP-773)
- On really large wallets, postTransaction is slow and sometimes returns transaction_is_too_big (ADP-772)
- Fee estimation slowness (up to 4x slower when there are many wallets, comparing with old selection algorithm) (ADP-702)
- Wallet restoration time deteriorated 2x in v2021-01-28 (ADP-690)
- Wallet disappears after migration from v2021-09-09 to v2021-09-29 when there are pending transaction (ADP-1224)
- Error "restoreBlocks: given chain isn't a valid continuation" when quickly creating new wallets after startup (ADP-1148)
- Icarus wallets restoration is ~3x slower than random/shelley (ADP-785)
- Multi-addresses transactions sometimes result in an internal server error. (ADP-571)
Documentation
📕 | 💻 | 🐳 |
---|---|---|
[API Docu... |
v2022-07-01
This release captures a first compatible version of cardano-wallet ready to be deployed, tested, and implemented in your products on the newly forked Babbage Era of the Cardano Testnet. While cardano-wallet’s feature set will continue performing as expected in most cases, we do know of some exceptions (see
This release will be followed by a release(s) addressing these known issues. If you find there are other issues please create a GitHub Issue in this repository.
Compatible with [email protected]
.
Changes
Added
- Support for cardano-node 1.35.0 (#3293 #3280 #3340 #3349 #3357, #3347, #3354)
- 🏗 Partial support for Babbage era / Vasil HF (#3308, #3311, #3362, #3360, #3326)
- The wallet should continue working in Babbage, with some exceptions:
⚠️ The minimum UTxO calculation could be incorrect for Babbage in some cases. This calculation is used:- within
postTransaction
:- to provide minimum ada quantities for user-specified outputs without ada;
- to compute minimum ada quantities for auto-generated change outputs;
- within
createWalletMigrationPlan
andmigrateWallet
, to compute minimum ada quantities for auto-generated outputs. - when validating requests to
balanceTransaction
.
- within
⚠️ New transaction workflow endpoints are currently biased towards deserialising and submitting transactions binaries as Alonzo transactions even in Babbage. The implications of this should be minor, as these transactions are still acceptable by the node.
balanceTransaction
does not yet support balancing transactions with total collateral or collateral return set, but will fail gracefully. #3343- Wallets are able to discover collateral return outputs in transactions. #3251 #3346 #3367
- The wallet should continue working in Babbage, with some exceptions:
Fixed
- For Babbage (and possibly Alonzo) era transactions, the API does not correctly reflect the script validity (ADP-1970, #3365)
API Changes
https://bump.sh/doc/cardano-wallet-diff/changes/f1ff267d-448f-4d65-b988-eb4df3f6356f
Show API changes
GET /network/parameters
-
200
response was modified-
eras
body attribute was modified
-
Known Issues
- Potential regression in wallet restoration (ADP-1371)
- Occasional invalid transaction error (MaxTxSizeUTxO) on wallets with big amounts of assets (ADP-1052)
- High memory usage observed in SPO testnet wallet (ADP-776)
- Rare SQLite3 constraint errors when making transactions (ADP-773)
- On really large wallets, postTransaction is slow and sometimes returns transaction_is_too_big (ADP-772)
- Fee estimation slowness (up to 4x slower when there are many wallets, comparing with old selection algorithm) (ADP-702)
- Listing transaction time deteriorated (even up to 3x) (ADP-691)
- Wallet restoration time deteriorated 2x in v2021-01-28 (ADP-690)
- Wallet disappears after migration from v2021-09-09 to v2021-09-29 when there are pending transaction (ADP-1224)
- Error "restoreBlocks: given chain isn't a valid continuation" when quickly creating new wallets after startup (ADP-1148)
- Icarus wallets restoration is ~3x slower than random/shelley (ADP-785)
- Multi-addresses transactions sometimes result in an internal server error. (ADP-571)
Documentation
📕 | 💻 | 🐳 |
---|---|---|
API Documentation | CLI Manual | Docker Manual |
Installation Instructions
-
Install
[email protected]
. -
Download the provided
cardano-wallet
for your platform, and uncompress it in a directory that is on your$PATH
, e.g./usr/local/bin
. Or%PATH%
on Windows. -
Start
cardano-wallet --help
and see available parameters.
Docker
Pull from DockerHub and verify the version matches 2022.7.1.
$ docker pull inputoutput/cardano-wallet:2022.7.1
$ docker run --rm inputoutput/cardano-wallet:2022.7.1 version
Signatures
Name | Role | Approval |
---|---|---|
Heinrich Apfelmus @HeinrichApfelmus | Haskell Engineering Lead | ✔️ |
Piotr Stachyra @piotr-iohk | QA Engineer | ✔️ |
Laurence Jenkins @LaurenceIO | Release Manager | ✔️ |
v2022-05-27
Compatible with [email protected]
.
Changes
Added
-
The
constructTransaction
endpoint now supports minting and burning of tokens (ADP-1191). See how to mint an NFT for more information. -
It's now possible to use a simpler metadata format in various endpoints that relate to transactions. (ADP-1596, PR-3253)
- In the case of
getTransaction
andlistTransaction
, the wallet will use the simple metadata format if thesimple-metadata
query flag is set. - In the case of
postTransaction
andconstructTransaction
, it's possible to use the simpler metadata format without specifying a special flag. - See the this minting transaction guide for an example of how to use this simpler format.
- In the case of
-
Transactions returned by the
getTransaction
andlistTransactions
API endpoints now have acollateral_outputs
field. For the moment, this field is always empty, but after the Vasil hard fork we will use this field to list any collateral return outputs that are associated with transactions.
(PR 3251, ADP-1715, ADP-1716, ADP-1717) -
It's now possible to change a Shelley wallet passphrase by specifying the wallet's mnemonic. Previously, it was only possible to do this by specifying the old passphrase. (ADP-1658, PR-3279)
Changed
-
The method of calculating wallet IDs for shared wallets has changed. This affects both
cardano-wallet
andcardano-addresses
. The wallet ID is now determined by the extended public account key, the payment script template, and the delegation script template if present.
(ADP-1621, PR-3275). -
Restoring a wallet now has a smaller memory footprint. (ADP-1765, PR-3274)
Fixed
-
Certain validity intervals that were mistakenly rejected are now accepted when calling
constructTransaction
. (ADP-1738, PR-3269) -
Certain API inconsistencies relating to validity and timelocks are now fixed: (PR 3249, ADP-1193)
- It’s now forbidden to pass negative values in
validity_interval
. - It’s now required to pass
invalid_before
orinvalid_hereafter
or both.
- It’s now forbidden to pass negative values in
API Changes
https://bump.sh/doc/cardano-wallet-diff/changes/215a1771-fce0-4d7d-a7b1-198272f8337c
Show API changes
-
Modified:
DELETE /stake-pools/*/wallets/{walletId}
-
202
response was modified-
collateral_outputs
body attribute was added -
mint
body attribute was removedBreaking -
metadata
body attribute was modified
-
-
-
Modified:
GET /byron-wallets/{walletId}/transactions
-
200
response was modified-
collateral_outputs
body attribute was added -
mint
body attribute was removedBreaking -
metadata
body attribute was modified
-
-
-
Modified:
GET /byron-wallets/{walletId}/transactions/{transactionId}
-
200
response was modified-
collateral_outputs
body attribute was added -
mint
body attribute was removedBreaking -
metadata
body attribute was modified
-
-
-
Modified:
GET /wallets/{walletId}/transactions
-
simple-metadata
query parameter was added -
200
response was modified-
collateral_outputs
body attribute was added -
mint
body attribute was removedBreaking -
metadata
body attribute was modified
-
-
-
Modified:
GET /wallets/{walletId}/transactions/{transactionId}
-
simple-metadata
query parameter was added -
200
response was modified-
collateral_outputs
body attribute was added -
mint
body attribute was removedBreaking -
metadata
body attribute was modified
-
-
-
Modified:
POST...
v2022-04-27
This release contains:
- Improved support for minting and burning.
- Continued development of a light mode.
- Improved transaction balancing reliability.
- Refactoring of the database and coin-selection modules.
- A host of testing improvements and miscellaneous fixes.
Compatible with [email protected]
.
API Changes
https://bump.sh/doc/cardano-wallet-diff/changes/c11ebb1b-39c1-40b6-96b9-610705c62cb8
Community Contributions 💞
- Export
ApiValidityBound
constructors #3114- Thanks @runeksvendsen
- Fix typos in comments and function names. #3153
- Thanks @rex4539
New Features
Light mode (🚧 under development 🚧)
See more: How to start wallet server in light mode.
- Specification of light-mode #3118
- Fix diagram rendering in light-mode specification #3131
- Add
BlockSummary
type and related changes #3143 - Docs: Improve address discovery diagram for the light mode spec #3144
- Add a
--light --blockfost-token-file
CLI options #3148 - Light NetworkLayer: watchNodeTip/currentNodeTip #3169
- Change
applyBlocks
to also acceptBlockSummary
#3172 - Light NetworkLayer: lightSync #3175
- Cardano.Wallet.Shelley.Launch.BlockfrostSpec #3176
- Fix BlockfrostSpec on Windows #3182
- Rework CLI error reporting for the --blockfrost-token-file #3184
- Light Mode: Node tip and Protocol Parameters #3189
- Update docs for
--light
mode #3191 - Light Mode: currentCardanoEra #3209
- E2E tests for light mode #3213
- Light Mode: Time Interpreter #3221
- Light mode: hardcode epoch/era conversion for the Testnet #3222
- Light mode: fetch reward account balances #3231
- Enable network info ep test in light mode suite #3234
Minting and Burning (🚧 under development 🚧)
- Add minting/burning to constructTransaction and decodeTransaction #3152
- Make decodeTx not so strict when policy key is missing #3194
- Impl signing for minting/burning in new tx flow #3199
- Minting edge cases and additional testing #3226
- Get policy id endpoint #3239
Improvements
Transaction Balancing Reliability
- Add
estimateSignedTxSize
based off ledger'sevaluateTransactionFee
#3166 - Prepare for rewriting balanceTransaction #3150
- Re-write balanceTransaction using Node.evaluateTransactionBalance #3100
- Implement
sizeOfCoin
andcostOfIncreasingCoin
#3215 - Implement
distributeSurplus
and use inbalanceTransaction
#3223 - Suggestions for PR #3215 #3224
- Generalize
distributeSurplus
. #3238 - Add more property tests for
distributeSurplus
. #3243 - Add extraCoin{In,Out} to SelectionParams #3093
- Factor out guards into helpers in balanceTransaction #3092
Coin Selection Refactoring
- Provide a wallet-specific interface for coin selection. #3109
- Fork the
Selection
type. #3111 - Make wallet responsible for determining collateral suitability #3116
- Remove use of
TxOut
fromSelection.{inputs,outputs}
#3128 - Use
(TxIn, Address)
as a unique input identifier within coin selection modules. #3149 - Generalize UTxO identifier type within
UTxOIndex
. #3154 - Generalize UTxO identifier type within
UTxOSelection
. #3155 - Parameterize UTxO identifier type in internal coin selection modules. #3157
- Remove all remaining usages of
TxOut
from coin selection implementation. #3158 - Add the
SelectionStrategy
type. #3161 - Add support for minimal coin selections #3164
- Provide shared context for common coin selection types. #3165
- Remove the need for
Proxy
when generating a dummy address. #3168 - Generalize UTxO identifiers and addresses in coin selection
Gen
modules. #3174 - Add property tests for conversion functions in
Wallet.CoinSelection
. #3177 - Remove hard-coded dependency on
txOutMax{Coin,TokenQuantity}
within coin selection modules #3197 - Remove wallet types from coin selection test suite. #3204
- Make
UTxOIndex
agnostic to the distinction between ada and non-ada assets. #3217 - Generalize
SelectionFilter
tests withinUTxOIndexSpec
. #3220
DB Refactoring
database_schema_version
table stores current database schema version. #3105- Use
modifyDBVar
instead ofputCheckpoint
inCardano.Wallet
#3108 - Introduce types
DeltaUTxO
andDeltaWallet
#3156
Miscellaneous
- Select witnesses only for unique inps #3110
- Undelegate with existing rewards #3119
- Don't require a localhost dns entry #3185
- (Not yet used) Implement new Stake Pool Ranking formulas #3190
- Adjust e2e tests for minting/burning edge cases #3236
Documentation
- Docs: Revise and clean up user guide and concepts sections #3106
- Docs: Add more info about restarting hydra jobs #3126
- Docs: Add delegation use-case and clean up existing use-cases #3138
- Docs: Fix ordering of use-cases #3139
- Docs: Managing assets #3140
- Docs: Rendering fix #3141
Testing
- Server: Update windows error codes list #3125
- Add --markdown-output and unclassified failures count to scripts/bors-stats.rb #3127
- Remove assertions for pending tx after doing submit tx (it's flaky) #3129
- Fix link to hydra in e2e tests #3133
- Timeout restoration benchmark after 20h #3134
- Prepare for rewriting balanceTransaction #3150
- E2e tests: Fix expression getting supported node tag from README #3163
- E2e test against pr #3167
- E2e tests against cached wallet db #3171
- Adjust e2e tests #3178
- E2e tests: minor test and workflow updates #3188
- E2e tests: Fix docker wallet db cache #3198
- Fix shrinker for
ProtocolParameters
. #3205 - E2e testing: Minting/burning #3207
- Speed up
TransactionSpec.signTransaction
. #3211 - Attempt to fix "Gave up!" problem in prop_balanceTransactionUnresolvedInputs #3212
- Get node db from aws in Windows e2e flow #3216
- Fix for fingerprint in e2e test #3227
- Fix typo in test #3228
- Fix JSON encoding warnings in golden tests. #3247
Resolved Issues
Bug Fixes
- Fix for the
listAssets
API which shows assets unrelated to a wallet #3132 - Fix decode tx in plutus minting #3218
- ValueNotConservedUTxO: Transaction seems balanced incorrectly in case when less than minUtxOValue is left on the wallet #3100
Miscellaneous Build Fixes
- nixpkgs: 21.05 -> 21.11 #3130
- nix: Fix source filtering on latency benchmark #3135
- Better CI badge for Hydra #3137
- Bump cardano-node to 1.34.1 #3160
- Drop support for
stack build
#3170 - Quick fix: Constrain hedgehog < 1.1 #3192
- Fix cardano-wallet nightly build #3200
- Replace stack invocations in documentation with cabal #3201
- Update haskell.nix version now that we can cross-compile secp256k1 #3203
- GitHub Actions: Upgrade to windows-2022 #3208
- Ensure nightly test advances to the correct commit #3210
- Ensure 1.34.1 node bump is reflected in cabal.project #3229
- Use a patched openapi3 lib #3244
Known Issues
- Potential regression in wallet restoration (ADP-1371)
- Occasional invalid transaction error (MaxTxSizeUTxO) on wallets with big amounts of assets (ADP-1052)
- High memory usage observed in SPO testnet wallet (ADP-776)
- Rare SQLite3 constraint errors when making transactions (ADP-773)
- On really large wallets, postTransaction is slow and sometimes returns transaction_is_too_big (ADP-772)
- Fee estimation slowness (up to 4x slower when there are many wallets, comparing with old selection algorithm) (ADP-702)
- Listing transaction time deteriorated (even up to 3x) (ADP-691)
- Wallet restoration time deteriorated 2x in v2021-01-28 (ADP-690)
- Wallet disappears after migration from v2021-09-09 to v2021-09-29 when there are pending transaction (ADP-1224)
- Error "restoreBlocks: given chain isn't a valid continuation" when quickly creating new wallets after startup (ADP-1148)
- Icarus wallets restoration is ~3x slower than random/shelley (ADP-785)
- Multi-addresses transactions sometimes result in an internal server error. (ADP-571)
Documentation
📕 | 💻 | 🐳 |
---|---|---|
API Documentation | CLI Manual | Docker Manual |
Installation Instructions
-
Install
[email protected]
. -
Download the provided
cardano-wallet
for your platform, and uncompress it in a directory that is on your$PATH
, e.g./usr/local/bin
. Or%PATH%
on Windows. -
Start
cardano-wallet --help
and see available parameters.
Docker
Pull from DockerHub and verify the version matches 2022.4.27.
$ docker pull inputoutput/cardano-wallet:2022.4.27
$ docker run --rm inputoutput/cardano-wallet:2022.4.27 version
Signatures
Name | Role | Approval |
---|---|---|
Rodney Lorrimar @rvl | Technical Team Lead | ✔️ |
Piotr Stachyra @piotr-iohk | QA Engineer | ✔️ |
Laurence Jenkins @LaurenceIO | Release Manager | ✔️ |
v2022-01-18
This release adds compatibility with [email protected]
.
New Features
Improvements
- Refactors and preparatory work for incremental database updates of sequential address pools. #3073 #3068 #3056 #3048
Quality Improvements
- Testing improvements for new transaction workflow. #3022 #3065 #3078
- End-to-end test suite enhancements. #3067 #3079
- Turned on heap profiling in restoration benchmarks. #3061
Known Issues
- Time taken to restore an empty wallet is about 10-20% longer since v2021-12-15. (ADP-1371)
ValueNotConservedUTxO
: Transaction seems balanced incorrectly in case when less thanminUTxOValue
is left on the wallet. (ADP-1286)- Occasional invalid transaction error (
MaxTxSizeUTxO
) on wallets with large amounts of assets. (ADP-1052) - High memory usage observed in SPO testnet wallet. (ADP-776)
- Rare SQLite3 constraint errors when making transactions. (ADP-773)
- On really large wallets,
postTransaction
is slow and sometimes returnstransaction_is_too_big
. (ADP-772) - Fee estimation slowness (up to 4x slower when there are many wallets, comparing with old selection algorithm). (ADP-702)
- Listing transaction time deterioration (even up to 3x). (ADP-691)
- Wallet restoration time deterioration 2x compared to
v2021-01-28
. (ADP-690) - Wallet disappears after migration from
v2021-09-09
tov2021-09-29
when there are pending transactions. (ADP-1224) - Icarus wallets restoration is ~3x slower than Random/Shelley. (ADP-785)
- Multi-address transactions sometimes result in an internal server error. (ADP-571)
- error
restoreBlocks: given chain isn't a valid continuation
when creating new wallets shortly after startup. (ADP-1148)
Documentation
📕 | 💻 | 🐳 |
---|---|---|
API Documentation | CLI Manual | Docker Manual |
Installation Instructions
-
Install
[email protected]
. -
Download the provided
cardano-wallet
for your platform, and uncompress it in a directory that is on your$PATH
, e.g./usr/local/bin
. Or%PATH%
on Windows. -
Start
cardano-wallet --help
and see available parameters.
Docker
Pull from DockerHub and verify the version matches 2022.1.18.
$ docker pull inputoutput/cardano-wallet:2022.1.18
$ docker run --rm inputoutput/cardano-wallet:2022.1.18 version
Signatures
Name | Role | Approval |
---|---|---|
Rodney Lorrimar @rvl | Technical Team Lead | ✔️ |
Piotr Stachyra @piotr-iohk | QA Engineer | ✔️ |
Laurence Jenkins @LaurenceIO | Release Manager | ✔️ |