From 512082669b9e7245b1a373dbe1cfc552f55d47a3 Mon Sep 17 00:00:00 2001 From: KtorZ Date: Tue, 26 Mar 2019 09:57:33 +0100 Subject: [PATCH 1/5] Added Japanese translation from 2017-01-04-installation.md --- _data/swagger/v1/1.5.0-swagger.json | 3171 +++++++++++++++++++++++++++ _data/swagger/v1/1.5.1-swagger.json | 3171 +++++++++++++++++++++++++++ _docs/ja/2017-01-04-installation.md | 38 + 3 files changed, 6380 insertions(+) create mode 100644 _data/swagger/v1/1.5.0-swagger.json create mode 100644 _data/swagger/v1/1.5.1-swagger.json create mode 100644 _docs/ja/2017-01-04-installation.md diff --git a/_data/swagger/v1/1.5.0-swagger.json b/_data/swagger/v1/1.5.0-swagger.json new file mode 100644 index 000000000..2a25d6d67 --- /dev/null +++ b/_data/swagger/v1/1.5.0-swagger.json @@ -0,0 +1,3171 @@ +{ + "definitions": { + "APIResponse-Account": { + "properties": { + "data": { + "$ref": "#/definitions/Account" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-AccountAddresses": { + "properties": { + "data": { + "$ref": "#/definitions/AccountAddresses" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-AccountBalance": { + "properties": { + "data": { + "$ref": "#/definitions/AccountBalance" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-BatchImportResult _V1 Address_": { + "properties": { + "data": { + "$ref": "#/definitions/BatchImportResult" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-EstimatedFees": { + "properties": { + "data": { + "$ref": "#/definitions/EstimatedFees" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-NodeInfo": { + "properties": { + "data": { + "$ref": "#/definitions/NodeInfo" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-NodeSettings": { + "properties": { + "data": { + "$ref": "#/definitions/NodeSettings" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-Transaction": { + "properties": { + "data": { + "$ref": "#/definitions/Transaction" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-UtxoStatistics": { + "properties": { + "data": { + "$ref": "#/definitions/UtxoStatistics" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-V1 SoftwareVersion": { + "properties": { + "data": { + "$ref": "#/definitions/V1SoftwareVersion" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-Wallet": { + "properties": { + "data": { + "$ref": "#/definitions/Wallet" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-WalletAddress": { + "properties": { + "data": { + "$ref": "#/definitions/WalletAddress" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-_Account_": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/Account" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-_Transaction_": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/Transaction" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-_WalletAddress_": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/WalletAddress" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-_Wallet_": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/Wallet" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "Account": { + "example": { + "addresses": [ + { + "changeAddress": false, + "id": "iBULcLXh5E5uXjidkpqGuANxY85qwoURM8SF9G72YZm1D4WsT6PPKrZ9qdBAvuVqEazKczWB3aLzv4eX5n2ULGdxRxTFaiATuaapbC1kt9yr233bHY8p", + "ownership": "ambiguousOwnership", + "used": false + }, + { + "changeAddress": true, + "id": "2vCfMDNgQcTJ31f7TogT1HqkP2XQ1iH4JoBm6VRx7LP54jp2THiUwrNA2aEyaZjVwyJoRQgTsTDUy4C2RbpE7LS7Adb2wBMU5utrCxvt4MYkWZWzyJrgwq5bEAZK2BoSY2ea49E9hYek57tWQfiLGEnAf2g1Pqj2VLeSJUwQSNAqA7tawgskTtenMKZtes7myh4KnRdafYi77iSZYRAi5hEyzxEp7TmoPiPfXcFiELz7mLMpi9TYgY3u6ZL6FfRJ7x7SVZaxtEarYqkVUqvtx6pncv", + "ownership": "ambiguousOwnership", + "used": true + }, + { + "changeAddress": false, + "id": "VVF3hYNE48oyThCmXbzv7W7Deu8c3pnQdSHz6HXnTZdZca7RQXezPYDiaDU4N4h8ErGHuHu1e36edP1NqguAmpxLy2pXCmGM9X1rMzJuuivVJuy2HgxiKKStV4GoM133PgANmZyNvcpGutjdsz4p1UAgfP4gqggsUanV7jepjNhs7zoQdqACMUkTxSwUbjsXcQK5DJmwceY7dSk8GZ1cfonDeRwzKih5kgDD5TUzQ5bsYAj", + "ownership": "ambiguousOwnership", + "used": true + } + ], + "amount": 11091176260625603, + "index": 3660662023, + "name": "My account", + "walletId": "J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg" + }, + "properties": { + "addresses": { + "description": "Public addresses pointing to this account.", + "items": { + "$ref": "#/definitions/WalletAddress" + }, + "type": "array" + }, + "amount": { + "description": "Available funds, in Lovelace.", + "maximum": 45000000000000000, + "type": "number" + }, + "index": { + "description": "Account's index in the wallet, starting at 0.", + "maximum": 4294967295, + "minimum": 2147483648, + "type": "number" + }, + "name": { + "description": "Account's name.", + "type": "string" + }, + "walletId": { + "description": "Id of the wallet this account belongs to.", + "type": "string" + } + }, + "required": [ + "index", + "addresses", + "amount", + "name", + "walletId" + ], + "type": "object" + }, + "AccountAddresses": { + "example": { + "addresses": [ + { + "changeAddress": true, + "id": "5FCjkr138i9mqH39X3EH7jobj73Em5AWwLXdDwsSAq9HPSYTpyApe8LTex4mhKhNex5oGbTSMiTvh1i3bJ8Dw8AQfUx89T8GNzFeAmUzPHE", + "ownership": "ambiguousOwnership", + "used": false + }, + { + "changeAddress": true, + "id": "FHnt4NL7yPYFA9hUHPAFpXGxpij6QGHg5PBL3YuVbTZCdAGmjif35yQdC3eKQpz", + "ownership": "isOurs", + "used": false + } + ] + }, + "properties": { + "addresses": { + "description": "Public addresses pointing to this account.", + "items": { + "$ref": "#/definitions/WalletAddress" + }, + "type": "array" + } + }, + "required": [ + "addresses" + ], + "type": "object" + }, + "AccountBalance": { + "example": { + "amount": 25132995790248024 + }, + "properties": { + "amount": { + "description": "Available funds, in Lovelace.", + "maximum": 45000000000000000, + "type": "number" + } + }, + "required": [ + "amount" + ], + "type": "object" + }, + "AccountIndex": { + "maximum": 4294967295, + "minimum": 2147483648, + "type": "number" + }, + "AccountUpdate": { + "example": { + "name": "myAccount" + }, + "properties": { + "name": { + "description": "New account's name.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "Address": { + "format": "base58", + "type": "string" + }, + "AssuranceLevel": { + "enum": [ + "normal", + "strict" + ], + "type": "string" + }, + "BatchImportResult": { + "example": { + "failures": [], + "totalSuccess": 2 + }, + "properties": { + "failures": { + "description": "Entities failed to be imported, if any", + "items": { + "$ref": "#/definitions/Address" + }, + "type": "array" + }, + "totalSuccess": { + "description": "Total number of entities successfully imported", + "exclusiveMinimum": false, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "totalSuccess", + "failures" + ], + "type": "object" + }, + "BlockchainHeight": { + "properties": { + "quantity": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "blocks" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "BoundType": { + "enum": [ + "Log10" + ], + "type": "string" + }, + "EstimatedCompletionTime": { + "properties": { + "quantity": { + "minimum": 0, + "type": "number" + }, + "unit": { + "enum": [ + "milliseconds" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "EstimatedFees": { + "example": { + "estimatedAmount": 25132995790248024 + }, + "properties": { + "estimatedAmount": { + "description": "Estimated fees, in Lovelace.", + "maximum": 45000000000000000, + "type": "number" + } + }, + "required": [ + "estimatedAmount" + ], + "type": "object" + }, + "MaxTxSize": { + "properties": { + "quantity": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "bytes" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "Metadata": { + "properties": { + "pagination": { + "$ref": "#/definitions/PaginationMetadata" + } + }, + "required": [ + "pagination" + ], + "type": "object" + }, + "NewAccount": { + "example": { + "name": "\u0006", + "spendingPassword": "" + }, + "properties": { + "name": { + "description": "Account's name.", + "type": "string" + }, + "spendingPassword": { + "description": "Wallet's protection password, required if defined.", + "format": "hex|base16", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "NewAddress": { + "example": { + "accountIndex": 4142131051, + "spendingPassword": "0001010200010101000101020202020101020001020100020002010101000201", + "walletId": "J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg" + }, + "properties": { + "accountIndex": { + "description": "Target account's index to store this address in.", + "maximum": 4294967295, + "minimum": 2147483648, + "type": "number" + }, + "spendingPassword": { + "description": "Wallet's protection password, required if defined.", + "format": "hex|base16", + "type": "string" + }, + "walletId": { + "description": "Corresponding wallet identifier.", + "type": "string" + } + }, + "required": [ + "accountIndex", + "walletId" + ], + "type": "object" + }, + "NewWallet": { + "example": { + "assuranceLevel": "strict", + "backupPhrase": [ + "squirrel", + "material", + "silly", + "twice", + "direct", + "slush", + "pistol", + "razor", + "become", + "junk", + "kingdom", + "flee" + ], + "name": "My Wallet", + "operation": "restore", + "spendingPassword": "0202010002000102020002010202010002020100000102020201020000020102" + }, + "properties": { + "assuranceLevel": { + "description": "Desired assurance level based on the number of confirmations counter of each transaction.", + "enum": [ + "normal", + "strict" + ], + "type": "string" + }, + "backupPhrase": { + "description": "Backup phrase to restore the wallet.", + "items": { + "type": "string" + }, + "maxItems": 12, + "minItems": 12, + "type": "array" + }, + "name": { + "description": "Wallet's name.", + "type": "string" + }, + "operation": { + "description": "Create a new wallet or Restore an existing one.", + "enum": [ + "create", + "restore" + ], + "type": "string" + }, + "spendingPassword": { + "description": "Optional (but recommended) password to protect the wallet on sensitive operations.", + "format": "hex|base16", + "type": "string" + } + }, + "required": [ + "backupPhrase", + "assuranceLevel", + "name", + "operation" + ], + "type": "object" + }, + "NodeInfo": { + "example": { + "blockchainHeight": { + "quantity": 12513853667654321111, + "unit": "blocks" + }, + "localBlockchainHeight": { + "quantity": 12988764939106870466, + "unit": "blocks" + }, + "localTimeInformation": { + "localTimeDifference": { + "quantity": 3, + "unit": "microseconds" + }, + "status": "available" + }, + "subscriptionStatus": { + "150.136.236.249:2504:2": "subscribed", + "242.71.149.224:2160:1": "subscribed" + }, + "syncProgress": { + "quantity": 14, + "unit": "percent" + } + }, + "properties": { + "blockchainHeight": { + "description": "If known, the current blockchain height, in number of blocks.", + "properties": { + "quantity": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "blocks" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "localBlockchainHeight": { + "description": "Local blockchain height, in number of blocks.", + "properties": { + "quantity": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "blocks" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "localTimeInformation": { + "description": "Information about the clock on this node. The field 'localTimeDifference' is only defined when the status is 'available'", + "properties": { + "localTimeDifference": { + "properties": { + "quantity": { + "type": "integer" + }, + "unit": { + "enum": [ + "microseconds" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "status": { + "enum": [ + "unavailable", + "pending", + "available" + ], + "type": "string" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "subscriptionStatus": { + "additionalProperties": { + "$ref": "#/definitions/SubscriptionStatus" + }, + "description": "Is the node connected to the network?", + "type": "object" + }, + "syncProgress": { + "description": "Syncing progression, in percentage.", + "properties": { + "quantity": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "percent" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + } + }, + "required": [ + "syncProgress", + "localBlockchainHeight", + "localTimeInformation", + "subscriptionStatus" + ], + "type": "object" + }, + "NodeSettings": { + "example": { + "feePolicy": { + "a": { + "quantity": -12.457099816, + "unit": "lovelace/byte" + }, + "b": { + "quantity": -0.33614655, + "unit": "lovelace" + } + }, + "gitRevision": "0e1c9322a", + "maxTxSize": { + "quantity": 0, + "unit": "bytes" + }, + "projectVersion": "3", + "securityParameter": 1, + "slotCount": 2, + "slotDuration": { + "quantity": 60, + "unit": "milliseconds" + }, + "slotId": { + "epoch": 3216935222109, + "slot": 41 + }, + "softwareInfo": { + "applicationName": "ZY2", + "version": 1 + } + }, + "properties": { + "feePolicy": { + "description": "The fee policy.", + "properties": { + "a": { + "description": "Slope of the linear curve", + "properties": { + "quantity": { + "format": "double", + "type": "number" + }, + "unit": { + "enum": [ + "lovelace/byte" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "b": { + "description": "Intercept of the linear curve", + "properties": { + "quantity": { + "format": "double", + "type": "number" + }, + "unit": { + "enum": [ + "lovelace" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + } + }, + "required": [ + "a", + "b" + ], + "type": "object" + }, + "gitRevision": { + "description": "Git revision of this deployment.", + "type": "string" + }, + "maxTxSize": { + "description": "The largest allowed transaction size", + "properties": { + "quantity": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "bytes" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "projectVersion": { + "description": "Current project's version.", + "type": "string" + }, + "securityParameter": { + "description": "The security parameter.", + "minimum": 0, + "type": "number" + }, + "slotCount": { + "description": "The number of slots per epoch.", + "minimum": 0, + "type": "number" + }, + "slotDuration": { + "description": "Duration of a slot.", + "properties": { + "quantity": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "milliseconds" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "slotId": { + "description": "The current slot and epoch.", + "properties": { + "epoch": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "slot": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "softwareInfo": { + "description": "Various pieces of information about the current software.", + "properties": { + "applicationName": { + "type": "string" + }, + "version": { + "maximum": 4294967295, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "applicationName", + "version" + ], + "type": "object" + } + }, + "required": [ + "slotId", + "slotDuration", + "slotCount", + "softwareInfo", + "projectVersion", + "gitRevision", + "maxTxSize", + "feePolicy", + "securityParameter" + ], + "type": "object" + }, + "Page": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "PaginationMetadata": { + "properties": { + "page": { + "$ref": "#/definitions/Page" + }, + "perPage": { + "$ref": "#/definitions/PerPage" + }, + "totalEntries": { + "maximum": 9223372036854775807, + "minimum": 0, + "type": "number" + }, + "totalPages": { + "maximum": 9223372036854775807, + "minimum": 0, + "type": "number" + } + }, + "required": [ + "totalPages", + "page", + "perPage", + "totalEntries" + ], + "type": "object" + }, + "PasswordUpdate": { + "example": { + "new": "0200020100010100020202010000000201020000020002020200010200010102", + "old": "" + }, + "properties": { + "new": { + "description": "New passowrd.", + "format": "hex|base16", + "type": "string" + }, + "old": { + "description": "Old password.", + "format": "hex|base16", + "type": "string" + } + }, + "required": [ + "old", + "new" + ], + "type": "object" + }, + "Payment": { + "example": { + "destinations": [ + { + "address": "LDTseZq14n8z9d48NnMLb5F5jPK3myRvrDW7EDCeuqAFssvXTXiAtg1YftZFCRHAmCTiKEbv2rNKb5v5miYQZJnpnD6s12nPzEfX93nvV5yH7CiadLch5bC988QGd7FEvTSBAYbdwBHVY3vRCbtETm9jx88vtFCxXp9MqHrsjDkthMuhpEWSdYKMv3h7uynQdBhJ1sTKBhftPDBFpJtVed3oLbZGHk4MxHL3puENZqC", + "amount": 7893389421760074 + }, + { + "address": "9C7ENmch8B5UFDYeXSYatfXkSsPMViXw2GG2qgLhYQJFn7xPK9KuZWQqz8Lg1PuxoHAF28LnVW6uyvxq4jvGQ55SkAGtqd5BZTDE2geb1TCpxLRVNSL66LdPZ9dn9ob9JuYCgfq48HNoa6FW3yTQpZvujznPYoinb9p61ouAVukwZYoWmst2QxkTRAM7ThdeL9qB4UZY7PkdgrLhCtXK4okhgLZXUT1NR1uvmx8LK4hBmRiFteoRWwQpiFMYAY1Fz3qnyJ3LU3XEywteZR1EwBHQBno2gGpCUW1vYYFXP9iuadtBCGKpfzRwsk3MDZ4Sty8mUsT2nJVgqV6PmgJ", + "amount": 23867890792708363 + } + ], + "groupingPolicy": "OptimizeForHighThroughput", + "source": { + "accountIndex": 2185829225, + "walletId": "J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg" + }, + "spendingPassword": "0200020100010100020202010000000201020000020002020200010200010102" + }, + "properties": { + "destinations": { + "description": "One or more destinations for the payment.", + "items": { + "$ref": "#/definitions/PaymentDistribution" + }, + "minItems": 1, + "type": "array" + }, + "groupingPolicy": { + "description": "Optional strategy to use for selecting the transaction inputs.", + "enum": [ + "OptimizeForSecurity", + "OptimizeForHighThroughput" + ], + "type": "string" + }, + "source": { + "description": "Source for the payment.", + "example": { + "accountIndex": 3973314086, + "walletId": "J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg" + }, + "properties": { + "accountIndex": { + "description": "Corresponding account's index on the wallet.", + "maximum": 4294967295, + "minimum": 2147483648, + "type": "number" + }, + "walletId": { + "description": "Target wallet identifier to reach.", + "type": "string" + } + }, + "required": [ + "walletId", + "accountIndex" + ], + "type": "object" + }, + "spendingPassword": { + "description": "Wallet's protection password, required to spend funds if defined.", + "format": "hex|base16", + "type": "string" + } + }, + "required": [ + "source", + "destinations" + ], + "type": "object" + }, + "PaymentDistribution": { + "example": { + "address": "SCFaachJNvGSA1c4p441uQT1zWMPRpepbs4y2TQVNBb1dwfKMioaNaFs9wDJBdPgSKTPXzUAQkripQVq1wb3Pszd9m9wM96RExuu4Csr6NHod9mk31wBqfnvHWFUypLkcmTiPFMREgbtmcCayepA3nAsfvFbNpTfj7NCXK1KKyesH3n6ua3WQ6C5NNrrC7j9zXTeeK58brceoCxBuqvZfrxvfpT76yMoLQ6rk7gBCFny8Jpt4NwkTabs7UnbehBy6vRQt38JaPHmg35EiDWmnZYA", + "amount": 361333354208714 + }, + "properties": { + "address": { + "description": "Address to map coins to.", + "format": "base58", + "type": "string" + }, + "amount": { + "description": "Amount of coin to bind, in Lovelace.", + "maximum": 45000000000000000, + "type": "number" + } + }, + "required": [ + "address", + "amount" + ], + "type": "object" + }, + "PaymentSource": { + "example": { + "accountIndex": 3973314086, + "walletId": "J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg" + }, + "properties": { + "accountIndex": { + "description": "Corresponding account's index on the wallet.", + "maximum": 4294967295, + "minimum": 2147483648, + "type": "number" + }, + "walletId": { + "description": "Target wallet identifier to reach.", + "type": "string" + } + }, + "required": [ + "walletId", + "accountIndex" + ], + "type": "object" + }, + "PerPage": { + "default": 10, + "maximum": 50, + "minimum": 1, + "type": "integer" + }, + "Redemption": { + "example": { + "accountIndex": 3973314086, + "mnemonic": null, + "redemptionCode": "AABAA", + "spendingPassword": "0000000201010102020001000201020000020102010000020102020100010201", + "walletId": "J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg" + }, + "properties": { + "accountIndex": { + "$ref": "#/definitions/AccountIndex" + }, + "mnemonic": { + "description": "An optional mnemonic. This must be provided for a paper certificate redemption.", + "items": { + "type": "string" + }, + "maxItems": 9, + "minItems": 9, + "type": "array" + }, + "redemptionCode": { + "description": "The redemption code associated with the Ada to redeem.", + "type": "string" + }, + "spendingPassword": { + "description": "An optional spending password. This must match the password for the provided wallet ID and account index.", + "format": "hex|base16", + "type": "string" + }, + "walletId": { + "$ref": "#/definitions/WalletId" + } + }, + "required": [ + "redemptionCode", + "spendingPassword", + "walletId", + "accountIndex" + ], + "type": "object" + }, + "RedemptionMnemonic": { + "items": { + "type": "string" + }, + "maxItems": 9, + "minItems": 9, + "type": "array" + }, + "ResponseStatus": { + "enum": [ + "success", + "fail", + "error" + ], + "type": "string" + }, + "SecurityParameter": { + "minimum": 0, + "type": "number" + }, + "ShieldedRedemptionCode": { + "type": "string" + }, + "SlotDuration": { + "properties": { + "quantity": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "milliseconds" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "SlotId": { + "properties": { + "epoch": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "slot": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "SubscriptionStatus": { + "enum": [ + "subscribed", + "subscribing" + ], + "type": "string" + }, + "SyncPercentage": { + "properties": { + "quantity": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "percent" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "SyncProgress": { + "example": { + "estimatedCompletionTime": { + "quantity": 3000, + "unit": "milliseconds" + }, + "percentage": { + "quantity": 14, + "unit": "percent" + }, + "throughput": { + "quantity": 400, + "unit": "blocksPerSecond" + } + }, + "properties": { + "estimatedCompletionTime": { + "description": "The estimated time the wallet is expected to be fully sync, based on the information available.", + "properties": { + "quantity": { + "minimum": 0, + "type": "number" + }, + "unit": { + "enum": [ + "milliseconds" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "percentage": { + "description": "The sync percentage, from 0% to 100%.", + "properties": { + "quantity": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "percent" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "throughput": { + "description": "The sync throughput, measured in blocks/s.", + "properties": { + "quantity": { + "type": "number" + }, + "unit": { + "enum": [ + "blocksPerSecond" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + } + }, + "required": [ + "estimatedCompletionTime", + "throughput", + "percentage" + ], + "type": "object" + }, + "SyncState": { + "properties": { + "data": { + "$ref": "#/definitions/SyncProgress" + }, + "tag": { + "enum": [ + "restoring", + "synced" + ], + "type": "string" + } + }, + "required": [ + "tag" + ], + "type": "object" + }, + "SyncThroughput": { + "properties": { + "quantity": { + "type": "number" + }, + "unit": { + "enum": [ + "blocksPerSecond" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "TimeInfo": { + "description": "When 'available', returns an extra 'localTimeDifference' about the difference in microseconds between the node time and the NTP server.", + "properties": { + "localTimeDifference": { + "properties": { + "quantity": { + "type": "integer" + }, + "unit": { + "enum": [ + "microseconds" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "status": { + "enum": [ + "unavailable", + "pending", + "available" + ], + "type": "string" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "Timestamp": { + "description": "Time in ISO 8601 format", + "type": "string" + }, + "Transaction": { + "example": { + "amount": 28311699119270855, + "confirmations": 4, + "creationTime": "1977-09-26T13:35:28.425218", + "direction": "outgoing", + "id": "848d6fadc04dcd9af1bc462df5938ecfbe810c5ecb50971db1cf7ae224bb5955", + "inputs": [ + { + "address": "9C7ENmch8B5WHJiRLFVogY6TfQJwd85osxtKubsQda5N8P2X61WLDRw1BNhAJ6hCQ4fwcNjgjTDoKnoi9WzxEcwdteWbh7gw6vjCAYfpDWWq6MjjJKb8wS8kDVH51DuyYahvVUKCkSGrfxcgqk5hAj7XtRTmnzxH9ZkW7KPt94UcEyCdRjMsh4vKoKEaZzjK7gKXyZPE7frQTKHhjteqyNgKDeZAw7KF3HqV7WjseHocAUMcUQRBHW3DsAtt5rDo4oZkBGNmcSogDkXTCdzmQi7YVwD634cUy5xpJE9DFqbUAsGt48G6MQ3yeQusJ9mgnAntLjN5UVUKLLQttDA", + "amount": 6374888950522614 + }, + { + "address": "2441xhDQ65ixn9BDToFk8SvdfbecLtn6PpDYTYpD9L4QHDj3Cix7erZAzHQ3YVBVQNYvnBMQGMSmebZdmKxHVmxN2FkBBhY2dj9SDxASQUv3zDBWy7qLdQwWS", + "amount": 36892870043518670 + }, + { + "address": "LrKNkKxZoMeMGtUAe39j1P3pn2kef63inkxmT3wLPtwaqHLpmFpaYJAki8BSwc6Wk8M9crSiMbS4SPq5vPS7bUuzwNbEnmcpAgyzJPgiNLPg7QZZRrbtHXttLySGiY2tUaohxFpiiFcHUBwiL7q7SEZWKbZM1yeWB79YThxtubL3nF73S6B", + "amount": 42128232960387047 + }, + { + "address": "2cWKMJemoBam7gg1y5K2aFDhAm5L8fVc96NfxgcGhdLMFTsToNAU9t5HVdBBQKy4iDswL", + "amount": 16412596055594313 + } + ], + "outputs": [ + { + "address": "3Etp4Fs328mY5kvjC1RECHf129dyA2N85Ra9GETYpKeXQuGsMkJhG9qHpoXKQjNgN4unvBrPKdr77gADwzpeHkKQJACVBEgVgTY7LACDdgEthwenY7gs5BABEncwCrjdXyYRKWaY9GL5op6mwHBGpAA5UmEou7ATU1U4qn9KhKD31BnzyqapNVood", + "amount": 12346308348677985 + }, + { + "address": "YQdiVKZwx4SuCmAGcAZhRwDabqs7YMh1uTNqVCkPWEcsjUGAZyKoiKBu3YBhFyvoR4C2eYQ", + "amount": 3299396411509641 + }, + { + "address": "zCx6iXuvtn6P9m2KQ9mbZg8sxhknmSibuPZA4yyYLCtkMFjjdGQEjbRaWPjHdev67mNjhzewG7rCgbuwNYVsoHqzVu6NikeF5qA4hugUJVsu9N8U8hzdtrUK1bem4oMfaujTgm6mx8GmP5haT2j1sqjmQuNJ8QvranW1XSbkPxqU9CJa2Q2CCuHmzB4vGy7uM3qP8cuMmjmp3NuGKWTYv6U7riZQyU2AZ31mqkVi", + "amount": 11255318654184133 + }, + { + "address": "2Fc9FhbWKyhEGnFnqeat6M2bvZrs88sjaVovtqeDouXwc1zZHESBN4oixxSArJnqesPQbowsN2mX4nD87eWAYUYS8C2wW8TSFhCRz1AcFWE9mhrq3ExqYEAgowurBLuCgkno34rHsbvF2PLw8gWR8qnZafr1H7trVrY8WKxUppXgiQp83uzLuUZWFHMtDcWx26H3cy34jrEHgQHpzGHNepqdPCcJ2B3LEcEVHynDNE88FkFwe2uCANtatm3RuUQdFd3QYqoBXjppFLo8aX5ztPEEyKEHCXEfUmxxSRCxpwDo8JbwoSYBYtnrynXXbSYPhqPnkYNpMPfGfM", + "amount": 3709889702173341 + } + ], + "status": { + "data": {}, + "tag": "persisted" + }, + "type": "foreign" + }, + "properties": { + "amount": { + "description": "Coins moved as part of the transaction, in Lovelace.", + "maximum": 45000000000000000, + "type": "number" + }, + "confirmations": { + "description": "Number of confirmations.", + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "creationTime": { + "description": "Timestamp indicating when the transaction was created.", + "type": "string" + }, + "direction": { + "description": "Direction for this transaction.", + "enum": [ + "outgoing", + "incoming" + ], + "type": "string" + }, + "id": { + "description": "Transaction's id.", + "type": "string" + }, + "inputs": { + "description": "One or more input money distributions.", + "items": { + "$ref": "#/definitions/PaymentDistribution" + }, + "minItems": 1, + "type": "array" + }, + "outputs": { + "description": "One or more ouputs money distributions.", + "items": { + "$ref": "#/definitions/PaymentDistribution" + }, + "minItems": 1, + "type": "array" + }, + "status": { + "description": "Shows whether or not the transaction is accepted.", + "properties": { + "data": { + "type": "object" + }, + "tag": { + "enum": [ + "applying", + "inNewestBlocks", + "persisted", + "wontApply", + "creating" + ], + "type": "string" + } + }, + "required": [ + "tag", + "data" + ], + "type": "object" + }, + "type": { + "description": "Whether the transaction is entirely local or foreign.", + "enum": [ + "local", + "foreign" + ], + "type": "string" + } + }, + "required": [ + "id", + "confirmations", + "amount", + "inputs", + "outputs", + "type", + "direction", + "creationTime", + "status" + ], + "type": "object" + }, + "TransactionDirection": { + "enum": [ + "outgoing", + "incoming" + ], + "type": "string" + }, + "TransactionStatus": { + "properties": { + "data": { + "type": "object" + }, + "tag": { + "enum": [ + "applying", + "inNewestBlocks", + "persisted", + "wontApply", + "creating" + ], + "type": "string" + } + }, + "required": [ + "tag", + "data" + ], + "type": "object" + }, + "TransactionType": { + "description": "A transaction is 'local' if all the inputs and outputs belong to the current wallet. A transaction is foreign if the transaction is not local to this wallet.", + "enum": [ + "local", + "foreign" + ], + "type": "string" + }, + "TxFeePolicy": { + "properties": { + "a": { + "description": "Slope of the linear curve", + "properties": { + "quantity": { + "format": "double", + "type": "number" + }, + "unit": { + "enum": [ + "lovelace/byte" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "b": { + "description": "Intercept of the linear curve", + "properties": { + "quantity": { + "format": "double", + "type": "number" + }, + "unit": { + "enum": [ + "lovelace" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + } + }, + "required": [ + "a", + "b" + ], + "type": "object" + }, + "UtxoStatistics": { + "properties": { + "allStakes": { + "minimum": 0, + "type": "number" + }, + "boundType": { + "$ref": "#/definitions/BoundType" + }, + "histogram": { + "properties": { + "10": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "100": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "1000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "10000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "100000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "1000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "10000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "100000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "1000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "10000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "100000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "1000000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "10000000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "100000000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "1000000000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "10000000000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "45000000000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "histogram", + "allStakes" + ], + "type": "object" + }, + "V1AddressOwnership": { + "enum": [ + "isOurs", + "ambiguousOwnership" + ], + "type": "string" + }, + "V1BackupPhrase": { + "items": { + "type": "string" + }, + "maxItems": 12, + "minItems": 12, + "type": "array" + }, + "V1Coin": { + "maximum": 45000000000000000, + "type": "number" + }, + "V1Core.SlotCount": { + "minimum": 0, + "type": "number" + }, + "V1InputSelectionPolicy": { + "enum": [ + "OptimizeForSecurity", + "OptimizeForHighThroughput" + ], + "type": "string" + }, + "V1PassPhrase": { + "format": "hex|base16", + "type": "string" + }, + "V1SoftwareVersion": { + "properties": { + "applicationName": { + "type": "string" + }, + "version": { + "maximum": 4294967295, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "applicationName", + "version" + ], + "type": "object" + }, + "V1Version": { + "type": "string" + }, + "Wallet": { + "example": { + "assuranceLevel": "normal", + "balance": 41984918983627325, + "createdAt": "2032-07-26T13:46:01.035803", + "hasSpendingPassword": false, + "id": "J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg", + "name": "My wallet", + "spendingPasswordLastUpdate": "2029-04-05T12:13:13.241896", + "syncState": { + "data": null, + "tag": "synced" + } + }, + "properties": { + "assuranceLevel": { + "description": "The assurance level of the wallet.", + "enum": [ + "normal", + "strict" + ], + "type": "string" + }, + "balance": { + "description": "Current balance, in Lovelace.", + "maximum": 45000000000000000, + "type": "number" + }, + "createdAt": { + "description": "The timestamp that the wallet was created.", + "type": "string" + }, + "hasSpendingPassword": { + "description": "Whether or not the wallet has a passphrase.", + "type": "boolean" + }, + "id": { + "description": "Unique wallet identifier.", + "type": "string" + }, + "name": { + "description": "Wallet's name.", + "type": "string" + }, + "spendingPasswordLastUpdate": { + "description": "The timestamp that the passphrase was last updated.", + "type": "string" + }, + "syncState": { + "description": "The sync state for this wallet.", + "properties": { + "data": { + "$ref": "#/definitions/SyncProgress" + }, + "tag": { + "enum": [ + "restoring", + "synced" + ], + "type": "string" + } + }, + "required": [ + "tag" + ], + "type": "object" + } + }, + "required": [ + "id", + "name", + "balance", + "hasSpendingPassword", + "spendingPasswordLastUpdate", + "createdAt", + "assuranceLevel", + "syncState" + ], + "type": "object" + }, + "WalletAddress": { + "example": { + "changeAddress": false, + "id": "2Tp1cYozcWTnzCJquF2wqpqYofU89jEyDB6z9PDjvJqUA6xeA56iK5HzkBqFNCvwfFLbB61f2HQVw5rDnLDgHCsVHvbUx52xBLU7kUgHd298og4vWfu37hoByu4Ni79v84PGbutuPgzwb1KFeLDL1ShCoiqUfnQAcZrJda4qtoyvh6zfRtwkxs3WiUbPMcT1pPWSQ2VVuPpKY5pmUr8vzpGmSBfCj6vN9k35pSYR3q6pn", + "ownership": "ambiguousOwnership", + "used": true + }, + "properties": { + "changeAddress": { + "description": "True if this address stores change from a previous transaction.", + "type": "boolean" + }, + "id": { + "description": "Actual address.", + "format": "base58", + "type": "string" + }, + "ownership": { + "description": "'isOurs' if this address is recognised as ours, 'ambiguousOwnership' if the node doesn't have information to make a unambiguous statement.", + "enum": [ + "isOurs", + "ambiguousOwnership" + ], + "type": "string" + }, + "used": { + "description": "True if this address has been used.", + "type": "boolean" + } + }, + "required": [ + "id", + "used", + "changeAddress", + "ownership" + ], + "type": "object" + }, + "WalletId": { + "type": "string" + }, + "WalletImport": { + "example": { + "filePath": "/Users/foo/Documents/wallet_to_import.key", + "spendingPassword": "" + }, + "properties": { + "filePath": { + "description": "The path to the .key file holding the backup.", + "type": "string" + }, + "spendingPassword": { + "description": "An optional spending password to set for the imported wallet.", + "format": "hex|base16", + "type": "string" + } + }, + "required": [ + "filePath" + ], + "type": "object" + }, + "WalletOperation": { + "enum": [ + "create", + "restore" + ], + "type": "string" + }, + "WalletUpdate": { + "example": { + "assuranceLevel": "normal", + "name": "My Wallet" + }, + "properties": { + "assuranceLevel": { + "description": "New assurance level.", + "enum": [ + "normal", + "strict" + ], + "type": "string" + }, + "name": { + "description": "New wallet's name.", + "type": "string" + } + }, + "required": [ + "assuranceLevel", + "name" + ], + "type": "object" + } + }, + "host": "127.0.0.1:8090", + "info": { + "description": "This is the specification for the Cardano Wallet API, automatically generated as a [Swagger](https://swagger.io/) spec from the [Servant](http://haskell-servant.readthedocs.io/en/stable/) API of [Cardano](https://github.com/input-output-hk/cardano-sl).\n\nProtocol Version | Git Revision\n-------------------|-------------------\ncardano-sl:13 | 35e8f14b88733a39e4abc7e06d55562ef10986ee\n\n\nGetting Started\n===============\n\nIn the following examples, we will use *curl* to illustrate request to an API running on the default port **8090**.\n\nPlease note that wallet web API uses TLS for secure communication. Requests to the API need to\nsend a client CA certificate that was used when launching the node and identifies the client as\nbeing permitted to invoke the server API.\n\nCreating a New Wallet\n---------------------\n\nYou can create your first wallet using the [`POST /api/v1/wallets`](#tag/Wallets%2Fpaths%2F~1api~1v1~1wallets%2Fpost) endpoint as follow:\n\n```\ncurl -X POST https://localhost:8090/api/v1/wallets \\\n -H \"Accept: application/json; charset=utf-8\" \\\n -H \"Content-Type: application/json; charset=utf-8\" \\\n --cert ./scripts/tls-files/client.pem \\\n --cacert ./scripts/tls-files/ca.crt \\\n -d '{\n \"operation\": \"create\",\n \"backupPhrase\": [\"squirrel\",\"material\",\"silly\",\"twice\",\"direct\",\"slush\",\"pistol\",\"razor\",\"become\",\"junk\",\"kingdom\",\"flee\"],\n \"assuranceLevel\": \"normal\",\n \"name\": \"MyFirstWallet\",\n \"spendingPassword\": \"5416b2988745725998907addf4613c9b0764f04959030e1b81c603b920a115d0\"\n}'\n```\n\n> **Warning**: Those 12 mnemonic words given for the backup phrase act as an example. **Do\n> not** use them on a production system. See the section below about mnemonic codes for more\n> information.\n\nThe `spendingPassword` is optional but highly recommended. It a string of 32\ncharacters, encoded in base 16, yielding to an hexadecimal sequence of 64 bytes.\nThis passphrase is required for sensitive operations on the wallet and adds\nan extra security layer to it.\n\nTo generate a valid `spendingPassword`, please follow the following steps:\n\n- Pick a long sentence using a wide variety of characters (uppercase, lowercase,\n whitespace, punctuation, etc). Using a computer to randomly generate\n a passphrase is best, as humans aren't a good source of randomness.\n\n- Compute an appropriate hash of this passphrase. You'll need to use an\n algorithm that yields a 32-byte long string (e.g. *SHA256* or *BLAKE2b*).\n\n- Hex-encode the 32-byte hash into a 64-byte sequence of bytes.\n\nAs a response, the API provides you with a unique wallet `id` to be used in subsequent\nrequests. Make sure to store it / write it down. Note that every API response is\n[jsend-compliant](https://labs.omniti.com/labs/jsend); Cardano also augments responses with\nmeta-data specific to pagination. More details in the section below about [Pagination](#section/Pagination)\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"createdAt\": \"2029-10-05T15:07:16.313354\",\n \"syncState\": {\n \"tag\": \"synced\",\n \"data\": null\n },\n \"balance\": 43665522219500065,\n \"hasSpendingPassword\": false,\n \"assuranceLevel\": \"strict\",\n \"name\": \"My wallet\",\n \"id\": \"J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg\",\n \"spendingPasswordLastUpdate\": \"1999-05-26T17:51:24.639141\"\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nYou have just created your first wallet. Information about this wallet can be retrieved using the [`GET /api/v1/wallets/{walletId}`](#tag/Wallets%2Fpaths%2F~1api~1v1~1wallets~1{walletId}%2Fget)\nendpoint as follows:\n\n```\ncurl -X GET https://localhost:8090/api/v1/wallets/{{walletId}} \\\n -H \"Accept: application/json; charset=utf-8\" \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\nReceiving ADA\n-------------\n\nTo receive _ADA_ from other users you should provide your address. This address can be obtained\nfrom an account. Each wallet contains at least one account. An account is like a pocket inside\nof your wallet. Vew all existing accounts of a wallet by using the [`GET /api/v1/wallets/{{walletId}}/accounts`](#tag/Accounts%2Fpaths%2F~1api~1v1~1wallets~1{walletId}~1accounts%2Fget)\nendpoint:\n\n```\ncurl -X GET https://localhost:8090/api/v1/wallets/{{walletId}}/accounts?page=1&per_page=10 \\\n -H \"Accept: application/json; charset=utf-8\" \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\nSince you have, for now, only a single wallet, you'll see something like this:\n\n```json\n{\n \"status\": \"success\",\n \"data\": [\n {\n \"amount\": 29208924123228353,\n \"addresses\": [\n {\n \"used\": true,\n \"changeAddress\": true,\n \"id\": \"7J1MaQmKydNZFkSLuQ57KHDyEe5hDaVaoHfxqraW9MEEPSzVwgFCGHcRNicc8HfTQrQRD2Fe5M6ayQE2UeVQp91RxS9NvRm6Dme2MEDjK6TNTGx\",\n \"ownership\": \"ambiguousOwnership\"\n }\n ],\n \"name\": \"My account\",\n \"walletId\": \"J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg\",\n \"index\": 2379541633\n },\n {\n \"amount\": 33750393777694218,\n \"addresses\": [\n {\n \"used\": false,\n \"changeAddress\": true,\n \"id\": \"2657WMsDfac79WyvE2tqb1bGGWnU9euc7NA51qv6etiHjXxQ2YX4oAub6pj8TdVnH\",\n \"ownership\": \"ambiguousOwnership\"\n },\n {\n \"used\": true,\n \"changeAddress\": true,\n \"id\": \"7TLVhuQreVUZZh5qABV7Z8LRpZvvjHrsYEa3wQTPbLZnGmFfnkCrVbF155EV9DdnzGgDhfGYRXXUKr8zfdbadon1BqVq2vziwTD3uLHb3694MLx1y6YxFfUNLknZuhNGFAYQN6eAxiCW34YyUnoFgzA4ytHTfs7zgUoL2Wk5iLNUHCqvLbmNxuKG9x4E245HVHvQ3NFjXgmDzahvebP2p77bt9yokHbSxACGSAzDcytKtv\",\n \"ownership\": \"ambiguousOwnership\"\n },\n {\n \"used\": true,\n \"changeAddress\": false,\n \"id\": \"2Wcg6zEnC1VpLnrJKB7bnEgzzFNMzto9pgyM4LpKRB4wGKiKLXddRdhiJEtb84Wp9ph1zJ2PjrRzP36SaoXKTF4bos9UKpuvzyz5DWCadFZtYDWYNvYMY8iTEHKtkqazSv8cBvEmSyAmsSWzG5G3DByVBAFQ3v8j5Ke7uvBR7rXYzD7stR3Ty\",\n \"ownership\": \"ambiguousOwnership\"\n }\n ],\n \"name\": \"My account\",\n \"walletId\": \"J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg\",\n \"index\": 4165966019\n }\n ],\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nAll the wallet's accounts are listed under the `addresses` field. You can communicate one of\nthese addresses to receive _ADA_ on the associated account.\n\n\nSending ADA\n-----------\n\nIn order to send _ADA_ from one of your accounts to another address, you must create a new\npayment transaction using the [`POST /api/v1/transactions`](#tag/Transactions%2Fpaths%2F~1api~1v1~1transactions%2Fpost)\nendpoint as follows:\n\n```\ncurl -X POST https://localhost:8090/api/v1/transactions \\\n -H \"Accept: application/json; charset=utf-8\" \\\n -H \"Content-Type: application/json; charset=utf-8\" \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem \\\n -d '{\n \"destinations\": [{\n \"amount\": 14,\n \"address\": \"A7k5bz1QR2...Tx561NNmfF\"\n }],\n \"source\": {\n \"accountIndex\": 0,\n \"walletId\": \"Ae2tdPwUPE...8V3AVTnqGZ\"\n },\n \"spendingPassword\": \"5416b2988745725998907addf4613c9b0764f04959030e1b81c603b920a115d0\"\n}'\n```\n\nNote that, in order to perform a transaction, you need to have enough existing _ADA_ on the\nsource account! The Cardano API is designed to accomodate multiple recipients payments\nout-of-the-box; notice how `destinations` is a list of addresses (and corresponding amounts).\n\nWhen the transaction succeeds, funds are no longer available in the sources addresses, and are\nsoon made available to the destinations within a short delay. Note that, you can at any time see\nthe status of your wallets by using the [`GET /api/v1/transactions`](#tag/Transactions%2Fpaths%2F~1api~1v1~1transactions%2Fget)\nendpoint as follows:\n\n```\ncurl -X GET https://localhost:8090/api/v1/transactions?wallet_id=Ae2tdPwUPE...8V3AVTnqGZ\\\n -H \"Accept: application/json; charset=utf-8\" \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\nHere we constrained the request to a specific account. After our previous transaction the output\nshould look roughly similar to this:\n\n```json\n{\n \"status\": \"success\",\n \"data\": [\n {\n \"creationTime\": \"1992-04-19T20:16:49.472681\",\n \"status\": {\n \"tag\": \"applying\",\n \"data\": {}\n },\n \"amount\": 18382944037988940,\n \"inputs\": [\n {\n \"amount\": 2089878288955521,\n \"address\": \"9C7ENmch8B5d63erCzLDYQCNc5SSXAA5SLCBKckVaYR1coY1c3iyTwyT576WpbMbruKstvDrNvJ3iNwv5dGcwhdSTBjGDLYpEHA7jkBCMaKE3YDiSsCkUj2xoNC6FUtxcsAJhhDKjzhRD25ezcPJgoh9MxLKr2jPsNkPtnPy3qebPJYWH3dSp1TrBGrTni8fTGgszwJJSCkTcEqxRaeTEY3hANBekcjdtVdTT5XSUdkgUvzKjFwR5pP64MCpHLETtMpPttgDkDkTmfiz94xR6p64HY8EQCn4s1jAYsJq7mtcbcvNoh5jCikp7QzdRmADG28yVXWA9sBNjYdvWua\"\n },\n {\n \"amount\": 43889736213356858,\n \"address\": \"FHnt4NL7yPXn1Crm3Cb1iScuJnxyNWJzc2X5vHNGXa4t7ByLdcTJQuAJCnJcQMY\"\n },\n {\n \"amount\": 29553201435113214,\n \"address\": \"2657WMsDfac7D2V9Hdo6S2Nb8TW9HWSjEdc6Mym7JCnjxdbmdeZYvn5e4m9wqwUSe\"\n },\n {\n \"amount\": 25197302769215345,\n \"address\": \"3kaqdAD6vGMHCWFbbMhUTtYFk5rCCPoEaNWnJ6VKhEPdaYDNrwB8ZfY6TbeNrCewzEjWNNmvPetc1pM271eZGESJT97YG65ssSK4ksSWFzV1WHoF8qWrDRDr5fmQMx2KqEgQqsERvQ62TPAvLfoE1DPZ2n5fkKr5ZP487hM23PKT7oawzyEhwjComHp4RzPQD2RVgvDjvBPf7xS9XbLHdmFd6AeSTfCgNYm4xynGBsK4pE4asRjqGSCVRbDhUTbmvTgb7YtRjdXL64cFyhKJuZSyk2c9CD699ZPRjatdG4nvHQYVxmVCKEzNzHeRqWri8ASHAVwcm3vHswAnnxt8Ny\"\n }\n ],\n \"direction\": \"incoming\",\n \"outputs\": [\n {\n \"amount\": 41659835238982099,\n \"address\": \"iBULcLXh5E61LkdMY86JPAqJDH3xQuJt9NuNm4T49YibbAUSjhs5iwy536tP6kAiAwycrhxW22RSvU8M62E6tzZ7CffWSwLURDLyoP7dKZnR4pJ8d7k6\"\n }\n ],\n \"confirmations\": 3,\n \"id\": \"d827de094565984c09b06ac4953a2666c6385ed2b88635936d3d78bd28ed93b8\",\n \"type\": \"foreign\"\n },\n {\n \"creationTime\": \"2006-02-15T15:23:33.23388\",\n \"status\": {\n \"tag\": \"inNewestBlocks\",\n \"data\": {}\n },\n \"amount\": 19437341548340972,\n \"inputs\": [\n {\n \"amount\": 39542309808461,\n \"address\": \"D9NMcbfEqZXo2nxJvpykM3ERDsDzs9a4CtcX6WY9L8z2m6oysyEo21gjeywDpEFNUDQo8YEUACvzurMAoCSgQmUMdHn6W8DWSWgxdKyzSS2qNieCbYF17APZF18LpdV2675hbmzUyYSzhvN8ZPLwQyR6Ea9HtD22m1bKWYiQmJsE7rneXwzR3xRhguVRXdNFXiDKgzA2AXXs49KhNyTQERCtsp3jHFCaLKbggKiN8cnqLbFCZH2ynuPZXPoGWCyFxUkiYzjAFFZPYJ9MUpgYU6cMNzKRTWkRYD7HzyYwtXdvr48YMAL4ks7QBTra7XdLPsHQEXBaCnHXrQYZs3FxUjj\"\n }\n ],\n \"direction\": \"incoming\",\n \"outputs\": [\n {\n \"amount\": 15239276628088581,\n \"address\": \"xNk66s8wK4jp5HChUAHxezxo5oCx8PF35xUFVYKVT5ASaZQTBbkBMvtDMcW114A7JczvSq4he1TB2puYrKbwEt3KELPpGUEooi9xuQVELHMQbN61rp64kapyLKkswLLD5FQn1jZpZC86FWnQHxBL5rQJWVdNEeW48qHfStR1BaFPvv8My3TJGNrBfcAsmuJXTCxhVTPjkWxLGYdwdZpijFU5DorLukP8jp2Zi5KAihnb8UfmeR4dgwpoj5UyhdhE5fKjx2wJUGY95MffvFp9y1xj28dyzhCo\"\n },\n {\n \"amount\": 25924683754560431,\n \"address\": \"vbwFz83QgLnxGhhittLB1XqpVD9uzoN4nW26P5D5euYRJw6WpJPNiEQWb8GktGZxwZWVuYJVmtT2qvTQvTcDg9ckqLXuj6p6BdsVLJp5EcLFDPgRaRP3g7GPnZJshPFRaww3UMaFTruqWp6TR6uPjHpuL3KSB2iN5ejRtM4gchkuAyiasJ5abJYAJB2TjRycZ8ZrGey5BofrSu7K7dHMzGxVUverxrHLk4FnAaWrDegK1o9PAGvvGMxJp85varc7ELTF1YgDZRDjg3t3ez6WGFfNcG9RQHYkWiDWVUEdmcZYacxeppuKxeyubRf4CeFiqAcNzGjvnxH4b4yZo8bpYQEW\"\n }\n ],\n \"confirmations\": 0,\n \"id\": \"f5c79aba1f0102dce829e331574141be10d3db93e6b13f8a70d463124dc0bd8f\",\n \"type\": \"foreign\"\n }\n ],\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nIn addition, and because it is not possible to _preview_ a transaction, one can lookup a\ntransaction's fees using the [`POST /api/v1/transactions/fees`](#tag/Transactions%2Fpaths%2F~1api~1v1~1transactions~1fees%2Fpost)\nendpoint to get an estimation of those fees.\nSee [Estimating Transaction Fees](#section/Common-Use-Cases/Estimating-Transaction-Fees) for more details.\n\n\nPagination\n==========\n\n**All GET requests of the API are paginated by default**. Whilst this can be a source of\nsurprise, is the best way of ensuring the performance of GET requests is not affected by the\nsize of the data storage.\n\nVersion `V1` introduced a different way of requesting information to the API. In particular,\nGET requests which returns a _collection_ (i.e. typically a JSON array of resources) lists\nextra parameters which can be used to modify the shape of the response. In particular, those\nare:\n\n* `page`: (Default value: **1**).\n* `per_page`: (Default value: **10**)\n\nFor a more accurate description, see the section `Parameters` of each GET request, but as a\nbrief overview the first two control how many results and which results to access in a\npaginated request.\n\n\nFiltering and Sorting\n=====================\n\n`GET` endpoints which list collection of resources supports filters & sort operations, which\nare clearly marked in the swagger docs with the `FILTER` or `SORT` labels. The query format is\nquite simple, and it goes this way:\n\n\nFilter Operators\n----------------\n\n| Operator | Description | Example |\n|----------|---------------------------------------------------------------------------|------------------------|\n| - | If **no operator** is passed, this is equivalent to `EQ` (see below). | `balance=10` |\n| `EQ` | Retrieves the resources with index _equal_ to the one provided. | `balance=EQ[10]` |\n| `LT` | Retrieves the resources with index _less than_ the one provided. | `balance=LT[10]` |\n| `LTE` | Retrieves the resources with index _less than equal_ the one provided. | `balance=LTE[10]` |\n| `GT` | Retrieves the resources with index _greater than_ the one provided. | `balance=GT[10]` |\n| `GTE` | Retrieves the resources with index _greater than equal_ the one provided. | `balance=GTE[10]` |\n| `RANGE` | Retrieves the resources with index _within the inclusive range_ [k,k]. | `balance=RANGE[10,20]` |\n\nSort Operators\n--------------\n\n| Operator | Description | Example |\n|----------|---------------------------------------------------------------------------|------------------------|\n| `ASC` | Sorts the resources with the given index in _ascending_ order. | `sort_by=ASC[balance]` |\n| `DES` | Sorts the resources with the given index in _descending_ order. | `sort_by=DES[balance]` |\n| - | If **no operator** is passed, this is equivalent to `DES` (see above). | `sort_by=balance` |\n\n\nErrors\n======\n\nIn case a request cannot be served by the API, a non-2xx HTTP response will be issued, together\nwith a [JSend-compliant](https://labs.omniti.com/labs/jsend) JSON Object describing the error\nin detail together with a numeric error code which can be used by API consumers to implement\nproper error handling in their application. For example, here's a typical error which might be\nissued:\n\n``` json\n{\n \"status\": \"error\",\n \"diagnostic\": {},\n \"message\": \"WalletNotFound\"\n}\n```\n\nExisting Wallet Errors\n----------------------\n\nError Name / Description | HTTP Error code | Example\n-------------------------|-----------------|---------\n`NotEnoughMoney`
Not enough available coins to proceed.|403|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"details\": {
            \"msg\": \"Not enough available coins to proceed.\",
            \"availableBalance\": 1400
        }
    },
    \"message\": \"NotEnoughMoney\"
}
\n`OutputIsRedeem`
One of the TX outputs is a redemption address.|403|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"address\": \"Ae2tdPwUPEZ9ekGYaavZoWCYiLvboFMPHC732Ta8Z2NocXVfHQQWMpa9ymk\"
    },
    \"message\": \"OutputIsRedeem\"
}
\n`UnknownError`
Unexpected internal error.|500|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"msg\": \"Unexpected internal error.\"
    },
    \"message\": \"UnknownError\"
}
\n`InvalidAddressFormat`
Provided address format is not valid.|401|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"msg\": \"Provided address format is not valid.\"
    },
    \"message\": \"InvalidAddressFormat\"
}
\n`WalletNotFound`
Reference to an unexisting wallet was given.|404|
{
    \"status\": \"error\",
    \"diagnostic\": {},
    \"message\": \"WalletNotFound\"
}
\n`WalletAlreadyExists`
Can't create or restore a wallet. The wallet already exists.|403|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"walletId\": \"J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg\"
    },
    \"message\": \"WalletAlreadyExists\"
}
\n`AddressNotFound`
Reference to an unexisting address was given.|404|
{
    \"status\": \"error\",
    \"diagnostic\": {},
    \"message\": \"AddressNotFound\"
}
\n`InvalidPublicKey`
Extended public key (for external wallet) is invalid.|400|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"msg\": \"Extended public key (for external wallet) is invalid.\"
    },
    \"message\": \"InvalidPublicKey\"
}
\n`UnsignedTxCreationError`
Unable to create unsigned transaction for an external wallet.|500|
{
    \"status\": \"error\",
    \"diagnostic\": {},
    \"message\": \"UnsignedTxCreationError\"
}
\n`SignedTxSubmitError`
Unable to submit externally-signed transaction.|500|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"msg\": \"Unable to submit externally-signed transaction.\"
    },
    \"message\": \"SignedTxSubmitError\"
}
\n`TooBigTransaction`
Transaction size is greater than 4096 bytes.|400|
{
    \"status\": \"error\",
    \"diagnostic\": {},
    \"message\": \"TooBigTransaction\"
}
\n`TxFailedToStabilize`
We were unable to find a set of inputs to satisfy this transaction.|500|
{
    \"status\": \"error\",
    \"diagnostic\": {},
    \"message\": \"TxFailedToStabilize\"
}
\n`TxRedemptionDepleted`
The redemption address was already used.|400|
{
    \"status\": \"error\",
    \"diagnostic\": {},
    \"message\": \"TxRedemptionDepleted\"
}
\n`TxSafeSignerNotFound`
The safe signer at the specified address was not found.|400|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"address\": \"Ae2tdPwUPEZ9ekGYaavZoWCYiLvboFMPHC732Ta8Z2NocXVfHQQWMpa9ymk\"
    },
    \"message\": \"TxSafeSignerNotFound\"
}
\n`MissingRequiredParams`
Missing required parameters in the request payload.|400|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"params\": [
            [
                \"wallet_id\",
                \"walletId\"
            ]
        ]
    },
    \"message\": \"MissingRequiredParams\"
}
\n`WalletIsNotReadyToProcessPayments`
This wallet is restoring, and it cannot send new transactions until restoration completes.|403|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"stillRestoring\": {
            \"throughput\": {
                \"quantity\": 400,
                \"unit\": \"blocksPerSecond\"
            },
            \"percentage\": {
                \"quantity\": 14,
                \"unit\": \"percent\"
            },
            \"estimatedCompletionTime\": {
                \"quantity\": 3000,
                \"unit\": \"milliseconds\"
            }
        }
    },
    \"message\": \"WalletIsNotReadyToProcessPayments\"
}
\n`NodeIsStillSyncing`
The node is still syncing with the blockchain, and cannot process the request yet.|412|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"stillSyncing\": {
            \"quantity\": 14,
            \"unit\": \"percent\"
        }
    },
    \"message\": \"NodeIsStillSyncing\"
}
\n`CannotCreateAddress`
Cannot create derivation path for new address, for external wallet.|500|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"msg\": \"Cannot create derivation path for new address in external wallet.\"
    },
    \"message\": \"CannotCreateAddress\"
}
\n`RequestThrottled`
You've made too many requests too soon, and this one was throttled.|429|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"microsecondsUntilRetry\": 42
    },
    \"message\": \"RequestThrottled\"
}
\n`JSONValidationFailed`
Couldn't decode a JSON input.|400|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"validationError\": \"Expected String, found Null.\"
    },
    \"message\": \"JSONValidationFailed\"
}
\n`UnsupportedMimeTypePresent`
Expected Content-Type's main MIME-type to be 'application/json'.|415|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"mimeContentTypeError\": \"Expected Content-Type's main MIME-type to be 'application/json'.\"
    },
    \"message\": \"UnsupportedMimeTypePresent\"
}
\n`UtxoNotEnoughFragmented`
Missing 1 utxo(s) to accommodate all outputs of the transaction|403|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"details\": {
            \"help\": \"Utxo is not enough fragmented to handle the number of outputs of this transaction. Query /api/v1/wallets/{walletId}/statistics/utxos endpoint for more information\",
            \"missingUtxos\": 1
        }
    },
    \"message\": \"UtxoNotEnoughFragmented\"
}
\n\n\nMonetary Denomination & Units\n=============================\n\nCardano's currency is called _ADA_ ( \u20b3 ). _ADA_ has up to **6** decimal places; hence the\nsmallest monetary unit that can be represented in the Cardano's blockhain is: 0.000001\u20b3. This\nis also called a _Lovelace_ (Cardano's currency is named after the mathematician and computer\nscientist [Ada Lovelace](https://en.wikipedia.org/wiki/Ada_Lovelace)). Put in another way, one\n_ADA_ is equal to one million _Lovelace_.\n\nADA | Lovelace\n-----------|----------\n`1` | `1 000 000`\n`.000 001` | `1`\n\n> **Warning**: All amounts manipulated in the API are given and expected in Lovelace.\n\n\nMnemonic Codes\n==============\n\nThe full list of accepted mnemonic codes to secure a wallet is defined by the [BIP-39\nspecifications](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki). Note that\npicking up 12 random words from the list **is not enough** and leads to poor security. Make\nsure to carefully follow the steps described in the protocol when you generate words for a new\nwallet.\n\n\nVersioning & Legacy\n===================\n\nThe API is **versioned**, meaning that is possible to access different versions of the API by adding the _version number_ in the URL.\n\n**For the sake of backward compatibility, we expose the legacy version of the API, available simply as unversioned endpoints.**\n\nThis means that _omitting_ the version number would call the old version of the API. Deprecated\nendpoints are currently grouped under an appropriate section; they would be removed in upcoming\nreleased, if you're starting a new integration with Cardano-SL, please ignore these.\n\nNote that Compatibility between major versions is not _guaranteed_, i.e. the request & response formats might differ.\n\n\nDisable TLS (Not Recommended)\n-----------------------------\n\nIf needed, you can disable TLS by providing the `--no-tls` flag to the wallet or by running a wallet in debug mode with `--wallet-debug` turned on.\n\n\nCommon Use-Cases\n================\n\nSending Money to Multiple Recipients\n------------------------------------\n\nAs seen in [Sending ADA](#section/Getting-Started/Sending-ADA), you can send _ADA_ to\nanother party using the [`POST /api/v1/transactions`](#tag/Transactions%2Fpaths%2F~1api~1v1~1transactions%2Fpost) endpoint.\nImportant to notice is the type of the field `destinations`: it's a list, enabling you to provide more\nthan one destination. Each destination is composed of:\n\n- An address\n- A corresponding amount\n\nThe overall transaction corresponds to the sum of each outputs. For instance, to send money to\ntwo parties simultaneously:\n\n```\ncurl -X POST https://localhost:8090/api/v1/transactions \\\n -H \"Accept: application/json; charset=utf-8\" \\\n -H \"Content-Type: application/json; charset=utf-8\" \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem \\\n -d '{\n \"destinations\": [\n {\n \"amount\": 14,\n \"address\": \"A7k5bz1QR2...Tx561NNmfF\"\n },\n {\n \"amount\": 42,\n \"address\": \"B56n78WKE8...jXAa34NUFz\"\n }\n ],\n \"source\": {\n \"accountIndex\": 0,\n \"walletId\": \"Ae2tdPwUPE...8V3AVTnqGZ\"\n },\n \"spendingPassword\": \"5416b2988745725998907addf4613c9b0764f04959030e1b81c603b920a115d0\"\n}'\n```\n\n\nAbout UTXO Fragmentation\n------------------------\n\nAs described in [Sending Money to Multiple Recipients](#section/Common-Use-Cases/Sending-Money-to-Multiple-Recipients), it is possible to send ada to more than one destination. Cardano only allows a given UTXO to cover at most one single transaction output. As a result,\nwhen the number of transaction outputs is greater than the number the API returns a `UtxoNotEnoughFragmented` error which\nlooks like the following\n```\n{\n \"status\": \"error\",\n \"diagnostic\": {\n \"details\": {\n \"help\": \"Utxo is not enough fragmented to handle the number of outputs of this transaction. Query /api/v1/wallets/{walletId}/statistics/utxos endpoint for more information\",\n \"missingUtxos\": 1\n }\n },\n \"message\": \"UtxoNotEnoughFragmented\"\n}\n```\n\nTo make sure the source account has a sufficient level of UTXO fragmentation (i.e. number of UTXOs),\nplease monitor the state of the UTXOs as described in [Getting UTXO Statistics](#section/Common-Use-Cases/Getting-Utxo-Statistics). The\nnumber of wallet UTXOs should be no less than the transaction outputs, and the sum of all UTXOs should be enough to cover the total\ntransaction amount, including fees.\n\nContrary to a classic accounting model, there's no such thing as spending _part of a UTXO_, and one has to wait for a transaction to be included in a\nblock before spending the remaining change. This is very similar to using bank notes: one can't spend a USD 20 bill at two different shops at the same time,\neven if it is enough to cover both purchases \u2014 one has to wait for change from the first transaction before making the second one.\nThere's no \"ideal\" level of fragmentation; it depends on one's needs. However, the more UTXOs that are available, the higher the concurrency capacity\nof one's wallet, allowing multiple transactions to be made at the same time.\n\nSimilarly, there's no practical maximum number of UTXOs, but there is nevertheless a maximum transaction size. By having many small UTXOs,\none is taking the risk of hitting that restriction, should too many inputs be selected to fill a transaction. The only way to\nwork around this is to make multiple smaller transactions.\n\nEstimating Transaction Fees\n---------------------------\n\nWhen you submit a transaction to the network, some fees apply depending on, but not only, the\nselected grouping policy and the available inputs on the source wallet. There's actually a\ntrade-off between fees, cryptographic security, throughput and privacy. The more inputs are\nselected, the bigger is the payload, the bigger are the fees.\n\nThe API lets you estimate fees for a given transaction via the [`POST /api/v1/transaction/fees`](#tag/Transactions%2Fpaths%2F~1api~1v1~1transactions~1fees%2Fpost)\nendpoint. The request payload is identical to the one you would make to create a transaction:\n\n```\ncurl -X POST https://localhost:8090/api/v1/transactions/fees \\\n -H \"Accept: application/json; charset=utf-8\" \\\n -H \"Content-Type: application/json; charset=utf-8\" \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem \\\n -d '{\n \"destinations\": [{\n \"amount\": 14,\n \"address\": \"A7k5bz1QR2...Tx561NNmfF\"\n }],\n \"source\": {\n \"accountIndex\": 0,\n \"walletId\": \"Ae2tdPwUPE...8V3AVTnqGZ\"\n }\n}'\n```\n\nThe API resolves with an estimated amount in _ADA_. This estimation highly depends on the\ncurrent state of the ledger and diverges with time.\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"estimatedAmount\": 25132995790248024\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\n\nManaging Accounts\n-----------------\n\nA wallet isn't limited to one account. It can actually be useful to have more than one account\nin order to separate business activities. With the API, you can retrieve a specific account,\ncreate new ones, list all existing accounts of a wallet or edit a few things on an existing\naccount. By default, your wallet comes with a provided account. Let's see how to create a fresh\nnew account on a wallet using [`POST /api/v1/wallets/{{walletId}}/accounts`](#tag/Accounts%2Fpaths%2F~1api~1v1~1wallets~1{walletId}~1accounts%2Fpost):\n\n```\ncurl -X POST \\\n https://localhost:8090/api/v1/Ae2tdPwUPE...8V3AVTnqGZ/accounts \\\n -H 'Content-Type: application/json;charset=utf-8' \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem \\\n -d '{\n \"name\": \"MyOtherAccount\",\n \"spendingPassword\": \"5416b2988745725998907addf4613c9b0764f04959030e1b81c603b920a115d0\"\n}'\n```\n\nNote that the `spendingPassword` here should match the one provided earlier in [Creating a\nNew Wallet](#section/Getting-Started/Creating-a-New-Wallet).\n\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"amount\": 7328081618979461,\n \"addresses\": [\n {\n \"used\": true,\n \"changeAddress\": false,\n \"id\": \"NBimUZYpm3GRnk2bwqBdHAwSfyrLYUYKfDfDpBh4fCnkPLQz4YJD6BdN48McgEg9KGG\",\n \"ownership\": \"isOurs\"\n },\n {\n \"used\": true,\n \"changeAddress\": true,\n \"id\": \"Un4ZpTvXtoKmAvjR1LrKS6AibEsMBoGNTjpUCLUjohhLKMVCo8mHWV2QgLhAtDo4AWogK4z8PQheHmWGY17dTXEG6b1kENLdBfLPaPktpYrLZ219\",\n \"ownership\": \"ambiguousOwnership\"\n }\n ],\n \"name\": \"My account\",\n \"walletId\": \"J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg\",\n \"index\": 3660662023\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nYou can always retrieve this account description later if needed via [`GET /api/v1/wallets/{{walletId}}/accounts/{{accountId}}`](#tag/Accounts%2Fpaths%2F~1api~1v1~1wallets~1{walletId}~1accounts~1{accountId}%2Fget).\n\nFor example:\n\n```\ncurl -X GET \\\n https://127.0.0.1:8090/api/v1/wallets/Ae2tdPwUPE...8V3AVTnqGZ/accounts/2902829384 \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\nFor a broader view, the full list of accounts of a given wallet can be retrieved using [`GET /api/v1/wallets/{{walletId}}/accounts`](#tag/Accounts%2Fpaths%2F~1api~1v1~1wallets~1{walletId}~1accounts%2Fget)\n```\ncurl -X GET \\\n https://127.0.0.1:8090/api/v1/wallets/Ae2tdPwUPE...8V3AVTnqGZ/accounts \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\n```json\n{\n \"status\": \"success\",\n \"data\": [\n {\n \"amount\": 29208924123228353,\n \"addresses\": [\n {\n \"used\": true,\n \"changeAddress\": true,\n \"id\": \"7J1MaQmKydNZFkSLuQ57KHDyEe5hDaVaoHfxqraW9MEEPSzVwgFCGHcRNicc8HfTQrQRD2Fe5M6ayQE2UeVQp91RxS9NvRm6Dme2MEDjK6TNTGx\",\n \"ownership\": \"ambiguousOwnership\"\n }\n ],\n \"name\": \"My account\",\n \"walletId\": \"J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg\",\n \"index\": 2379541633\n },\n {\n \"amount\": 33750393777694218,\n \"addresses\": [\n {\n \"used\": false,\n \"changeAddress\": true,\n \"id\": \"2657WMsDfac79WyvE2tqb1bGGWnU9euc7NA51qv6etiHjXxQ2YX4oAub6pj8TdVnH\",\n \"ownership\": \"ambiguousOwnership\"\n },\n {\n \"used\": true,\n \"changeAddress\": true,\n \"id\": \"7TLVhuQreVUZZh5qABV7Z8LRpZvvjHrsYEa3wQTPbLZnGmFfnkCrVbF155EV9DdnzGgDhfGYRXXUKr8zfdbadon1BqVq2vziwTD3uLHb3694MLx1y6YxFfUNLknZuhNGFAYQN6eAxiCW34YyUnoFgzA4ytHTfs7zgUoL2Wk5iLNUHCqvLbmNxuKG9x4E245HVHvQ3NFjXgmDzahvebP2p77bt9yokHbSxACGSAzDcytKtv\",\n \"ownership\": \"ambiguousOwnership\"\n },\n {\n \"used\": true,\n \"changeAddress\": false,\n \"id\": \"2Wcg6zEnC1VpLnrJKB7bnEgzzFNMzto9pgyM4LpKRB4wGKiKLXddRdhiJEtb84Wp9ph1zJ2PjrRzP36SaoXKTF4bos9UKpuvzyz5DWCadFZtYDWYNvYMY8iTEHKtkqazSv8cBvEmSyAmsSWzG5G3DByVBAFQ3v8j5Ke7uvBR7rXYzD7stR3Ty\",\n \"ownership\": \"ambiguousOwnership\"\n }\n ],\n \"name\": \"My account\",\n \"walletId\": \"J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg\",\n \"index\": 4165966019\n }\n ],\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nPartial Representations\n-----------------------\n\nThe previous endpoint gives you a list of full representations. However, in some cases, it might be interesting to retrieve only a partial representation of an account (e.g. only the balance). There are two extra endpoints one could use to either fetch a given account's balance, and another to retrieve the list of addresses associated to a specific account.\n\n[`GET /api/v1/wallets/{{walletId}}/accounts/{{accountId}}/addresses`](#tag/Accounts%2Fpaths%2F~1api~1v1~1wallets~1%7BwalletId%7D~1accounts~1%7BaccountId%7D~1addresses%2Fget)\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"addresses\": [\n {\n \"used\": false,\n \"changeAddress\": true,\n \"id\": \"87iPzcvCgPhtmxALENcfXbYWRYSivUXJi5otTSN5QaLUichFdfZ7sYATc3t3B4trsg7Dnu\",\n \"ownership\": \"ambiguousOwnership\"\n },\n {\n \"used\": false,\n \"changeAddress\": true,\n \"id\": \"NBimUZYpm3G6aqEmXZ2gLgkYNasWQTpwo667eRwsT31n3YkpWsBR8zQYq2L6q3nEBpF\",\n \"ownership\": \"isOurs\"\n }\n ]\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nNote that this endpoint is paginated and allow basic filtering and sorting on\naddresses. Similarly, you can retrieve only the account balance with:\n\n[`GET /api/v1/wallets/{{walletId}}/accounts/{{accountId}}/amount`](#tag/Accounts%2Fpaths%2F~1api~1v1~1wallets~1%7BwalletId%7D~1accounts~1%7BaccountId%7D~1amount%2Fget)\n\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"amount\": 25132995790248024\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\n\nManaging Addresses\n------------------\n\nBy default, wallets you create are provided with an account which has one default address. It\nis possible (and recommended) for an account to manage multiple addresses. Address reuse\nactually reduces privacy for it tights more transactions to a small set of addresses.\n\nWhen paying, the wallet makes many of these choices for you. Addresses are\nselected from a wallet's account based on several different strategies and\npolicies.\n\nTo create a new address, use the [`POST /api/v1/addresses`](#tag/Addresses%2Fpaths%2F~1api~1v1~1addresses%2Fpost)\nendpoint:\n\n```\ncurl -X POST \\\n https://localhost:8090/api/v1/addresses \\\n -H 'Content-Type: application/json;charset=utf-8' \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem \\\n -d '{\n \"walletId\": \"Ae2tdPwUPE...V3AVTnqGZ4\",\n \"accountIndex\": 2147483648\n}'\n```\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"used\": false,\n \"changeAddress\": true,\n \"id\": \"AL91N9VXRTCuf4LDUdNV79GJyYrLqPPnAFwjY6QhySZJrTKibvwfuMM2iEbbBZuNCRqX661ZQayk7T4DnZqQHMjtYdPKQx5Fps8qfsnRnLBsz4bJirv\",\n \"ownership\": \"ambiguousOwnership\"\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nIf your wallet is protected with a password, this password is also required in order to create\nnew addresses for that wallet. In such case, the field `spendingPassword` should match the one\ndefined earlier to protect your wallet.\n\nAddresses generated as just described are always valid. When the API encounters\nan invalid address however (e.g. when provided by another party), it will fail with a\nclient error.\n\nYou can always view all your available addresses across all your wallets by using\n[`GET /api/v1/addresses`](#tag/Addresses%2Fpaths%2F~1api~1v1~1addresses%2Fget):\n\n```\ncurl -X GET https://localhost:8090/api/v1/addresses \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\n```json\n{\n \"status\": \"success\",\n \"data\": [\n \"EqGAuA8vHnNt34cxm9qU4fztVqQAN7NWsQaHBHiB69kv78cHAZQ3rqdtzxRwKAhcGqEr9fDBubnWwSahLZNhQk9yrE9ZyjmVKoJGd7Jfsm9y19n7ZwC7z6v\",\n \"FHnt4NL7yPXigpFJe6ShRAr7hLw7EGtue1NCbsf2EQfNMe1foFAdANNvMS3TR7S\"\n ],\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nChecking Synchronization Progress\n---------------------------------\n\nYou can control the synchronization progress of the underlying node hosting the wallet's server\nvia [`GET /api/v1/node-info`](#tag/Info%2Fpaths%2F~1api~1v1~1node-info%2Fget). The output is\nrather verbose and gives real-time progress updates about the current node.\n\n```\ncurl -X GET https://localhost:8090/api/v1/node-info \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"blockchainHeight\": {\n \"quantity\": 1.2822931622135091772e19,\n \"unit\": \"blocks\"\n },\n \"localTimeInformation\": {\n \"status\": \"available\",\n \"localTimeDifference\": {\n \"quantity\": 1,\n \"unit\": \"microseconds\"\n }\n },\n \"subscriptionStatus\": {\n \"112.2.62.140:2056:9\": \"subscribed\",\n \"213.202.149.125:4134:3\": \"subscribed\"\n },\n \"syncProgress\": {\n \"quantity\": 14,\n \"unit\": \"percent\"\n },\n \"localBlockchainHeight\": {\n \"quantity\": 9631745999145585284,\n \"unit\": \"blocks\"\n }\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\n\nRetrieving Transaction History\n------------------------------\n\nIf needed, applications may regularly poll the wallet's backend to retrieve the history of\ntransactions of a given wallet. Using the [`GET /api/v1/transactions`](#tag/Transactions%2Fpaths%2F~1api~1v1~1transactions%2Fget)\nendpoint, you can view the status of all transactions that ever sent or took money from the\nwallet.\n\nThe following table sums up the available filters (also detailed in the endpoint documentation details):\n\nFilter On | Corresponding Query Parameter(s)\n----------------------------| ------------------------------\nWallet | `wallet_id`\nWallet's account | `account_index` + `wallet_id`\nAddress | `address`\nTransaction's creation time | `created_at`\nTransaction's id | `id`\n\nFor example, in order to retrieve the last 50 transactions of a particular account,\nordered by descending date:\n\n```\ncurl -X GET https://127.0.0.1:8090/api/v1/transactions?wallet_id=Ae2tdPwU...3AVTnqGZ&account_index=2902829384&sort_by=DES\\[created_at\\]&per_page=50' \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\nFor example, in order to retrieve the last 50 transactions, ordered by descending date:\n\n```\ncurl -X GET 'https://127.0.0.1:8090/api/v1/transactions?wallet_id=Ae2tdPwU...3AVTnqGZ &sort_by=DES\\[created_at\\]&per_page=50' \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\n\nAnother example, if you were to look for all transactions made since the 1st of January 2018:\n\n```\ncurl -X GET 'https://127.0.0.1:8090/api/v1/transactions?wallet_id=Ae2tdPwU...3AVTnqGZ&created_at=GT\\[2018-01-01T00:00:00.00000\\]' \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\n\nGetting Utxo statistics\n---------------------------------\n\nYou can get Utxo statistics of a given wallet using\n [`GET /api/v1/wallets/{{walletId}}/statistics/utxos`](#tag/Accounts%2Fpaths%2F~1api~1v1~1wallets~1{walletId}~1statistics~1utxos%2Fget)\n\n```\ncurl -X GET \\\n https://127.0.0.1:8090/api/v1/wallets/Ae2tdPwUPE...8V3AVTnqGZ/statistics/utxos \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"boundType\": \"Log10\",\n \"allStakes\": 3792248171670440,\n \"histogram\": {\n \"10000000000000000\": 0,\n \"100000000000000\": 2,\n \"1000000000000\": 3,\n \"10000000000\": 0,\n \"100000000\": 0,\n \"1000000\": 2,\n \"10000\": 4,\n \"100\": 4,\n \"1000000000\": 1,\n \"100000000000\": 0,\n \"10\": 2,\n \"45000000000000000\": 0,\n \"1000\": 0,\n \"10000000000000\": 1,\n \"1000000000000000\": 4,\n \"100000\": 4,\n \"10000000\": 2\n }\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\nMake sure to carefully read the section about [Pagination](#section/Pagination) to fully\nleverage the API capabilities.\n\n\nImporting (Unused) Addresses From a Previous Node (or Version)\n--------------------------------------------------------------\n\nWhen restoring a wallet, only the information available on the blockchain can\nbe retrieved. Some pieces of information aren't stored on\nthe blockchain and are only defined as _Metadata_ of the wallet backend. This\nincludes:\n\n- The wallet's name\n- The wallet's assurance level\n- The wallet's spending password\n- The wallet's unused addresses\n\nUnused addresses are not recorded on the blockchain and, in the case of random\nderivation, it is unlikely that the same addresses will be generated on two\ndifferent node instances. However, some API users may wish to preserve unused\naddresses between different instances of the wallet backend.\n\nTo enable this, the wallet backend provides an endpoint ([`POST /api/v1/wallets/{{walletId}}/addresses`](#tag/Addresses%2Fpaths%2F~1api~1v1~1wallets~1{walletId}~1addresses%2Fpost))\nto import a list of addresses into a given account. Note that this endpoint is\nquite lenient when it comes to errors: it tries to import all provided addresses\none by one, and ignores any that can't be imported for whatever reason. The\nserver will respond with the total number of successes and, if any, a list of\naddresses that failed to be imported. Trying to import an address that is already\npresent will behave as a no-op.\n\nFor example:\n\n```\ncurl -X POST \\\n https://127.0.0.1:8090/api/v1/wallets/Ae2tdPwUPE...8V3AVTnqGZ/addresses \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem \\\n -d '[\n \"Ae2tdPwUPE...8V3AVTnqGZ\",\n \"Ae2odDwvbA...b6V104CTV8\"\n ]'\n```\n\n> **IMPORTANT**: This feature is experimental and performance is\n> not guaranteed. Users are advised to import small batches only.\n", + "license": { + "name": "MIT", + "url": "https://raw.githubusercontent.com/input-output-hk/cardano-sl/develop/lib/LICENSE" + }, + "title": "Cardano Wallet API", + "version": "1.5.0" + }, + "paths": { + "/api/internal/apply-update": { + "post": { + "description": "Apply the next available update proposal from the blockchain. Note that this\nwill immediately shutdown the node and makes it unavailable for a short while.\n", + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "" + } + }, + "summary": "Apply the next available update", + "tags": [ + "Internal" + ] + } + }, + "/api/internal/import-wallet": { + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WalletImport" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Wallet" + } + }, + "400": { + "description": "Invalid `body`" + } + }, + "summary": "Import a Wallet from disk.", + "tags": [ + "Internal" + ] + } + }, + "/api/internal/next-update": { + "get": { + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-V1 SoftwareVersion" + } + } + }, + "summary": "Version of the next update (404 if none)", + "tags": [ + "Internal" + ] + } + }, + "/api/internal/postpone-update": { + "post": { + "description": "Discard the next available update from the node's local state. Yet, this doesn't\nreject the update which will still be applied as soon as the node is restarted.\n", + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "" + } + }, + "summary": "Discard and postpone the next available update", + "tags": [ + "Internal" + ] + } + }, + "/api/internal/reset-wallet-state": { + "delete": { + "description": "Wipe-out the node's local state entirely. The only intended use-case for this\nendpoint is during API integration testing. Note also that this will fail by\ndefault unless the node is running in debug mode.\n", + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "204": { + "description": "" + } + }, + "summary": "Clear wallet state and all associated secret keys", + "tags": [ + "Internal" + ] + } + }, + "/api/v1/addresses": { + "get": { + "parameters": [ + { + "default": 1, + "description": "The page number to fetch for this request. The minimum is **1**. If nothing is specified, **this value defaults to 1** and always shows the first entries in the requested collection.\n", + "in": "query", + "minimum": 1, + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 10, + "description": "The number of entries to display for each page. The minimum is **1**, whereas the maximum is **50**. If nothing is specified, **this value defaults to 10**.\n", + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "per_page", + "required": false, + "type": "integer" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-_WalletAddress_" + } + }, + "400": { + "description": "Invalid `per_page` or `page`" + } + }, + "summary": "Returns a list of the addresses.", + "tags": [ + "Addresses" + ] + }, + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/NewAddress" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-WalletAddress" + } + }, + "400": { + "description": "Invalid `body`" + } + }, + "summary": "Creates a new Address.", + "tags": [ + "Addresses" + ] + } + }, + "/api/v1/addresses/{address}": { + "get": { + "description": "The previous version of this endpoint failed with an HTTP error when the given\naddress was unknown to the wallet.\n\nThis was misleading since an address that is unknown to the wallet may still\nbelong to the wallet (since it could be part of a pending transaction in\nanother instance of the same wallet).\n\nTo reflect this, the V1 endpoint does not fail when an address is not recognised\nand returns a new field which indicates the address' ownership status, from the\nnode point of view.\n", + "parameters": [ + { + "in": "path", + "name": "address", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-WalletAddress" + } + }, + "404": { + "description": "`address` not found" + } + }, + "summary": "Returns interesting information about an address, if available and valid.", + "tags": [ + "Addresses" + ] + } + }, + "/api/v1/node-info": { + "get": { + "parameters": [ + { + "allowEmptyValue": true, + "default": false, + "description": "In some cases, API Clients need to force a new NTP check as a previous result gets cached. A typical use-case is after asking a user to fix its system clock. If this flag is set, request will block until NTP server responds or it will timout if NTP server is not available within **30** seconds.", + "in": "query", + "name": "force_ntp_check", + "type": "boolean" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-NodeInfo" + } + }, + "400": { + "description": "Invalid `force_ntp_check`" + } + }, + "summary": "Retrieves the dynamic information for this node.", + "tags": [ + "Info" + ] + } + }, + "/api/v1/node-settings": { + "get": { + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-NodeSettings" + } + } + }, + "summary": "Retrieves the static settings for this node.", + "tags": [ + "Settings" + ] + } + }, + "/api/v1/transactions": { + "get": { + "parameters": [ + { + "in": "query", + "name": "wallet_id", + "required": false, + "type": "string" + }, + { + "in": "query", + "maximum": 4294967295, + "minimum": 2147483648, + "name": "account_index", + "required": false, + "type": "number" + }, + { + "in": "query", + "name": "address", + "required": false, + "type": "string" + }, + { + "default": 1, + "description": "The page number to fetch for this request. The minimum is **1**. If nothing is specified, **this value defaults to 1** and always shows the first entries in the requested collection.\n", + "in": "query", + "minimum": 1, + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 10, + "description": "The number of entries to display for each page. The minimum is **1**, whereas the maximum is **50**. If nothing is specified, **this value defaults to 10**.\n", + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "per_page", + "required": false, + "type": "integer" + }, + { + "description": "A **FILTER** operation on a Transaction. Filters support a variety of queries on the resource. These are: \n\n- `EQ[value]` : only allow values equal to `value`\n- `LT[value]` : allow resource with attribute less than the `value`\n- `GT[value]` : allow objects with an attribute greater than the `value`\n- `GTE[value]` : allow objects with an attribute at least the `value`\n- `LTE[value]` : allow objects with an attribute at most the `value`\n- `RANGE[lo,hi]` : allow objects with the attribute in the range between `lo` and `hi`\n- `IN[a,b,c,d]` : allow objects with the attribute belonging to one provided.\n\n", + "in": "query", + "name": "id", + "type": "string" + }, + { + "description": "A **FILTER** operation on a Transaction. Filters support a variety of queries on the resource. These are: \n\n- `EQ[value]` : only allow values equal to `value`\n- `LT[value]` : allow resource with attribute less than the `value`\n- `GT[value]` : allow objects with an attribute greater than the `value`\n- `GTE[value]` : allow objects with an attribute at least the `value`\n- `LTE[value]` : allow objects with an attribute at most the `value`\n- `RANGE[lo,hi]` : allow objects with the attribute in the range between `lo` and `hi`\n- `IN[a,b,c,d]` : allow objects with the attribute belonging to one provided.\n\n", + "in": "query", + "name": "created_at", + "type": "string" + }, + { + "allowEmptyValue": true, + "description": "A **SORT** operation on this Transaction. Allowed keys: `created_at`.\n", + "in": "query", + "name": "sort_by", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-_Transaction_" + } + }, + "400": { + "description": "Invalid `per_page` or `page` or `address` or `account_index` or `wallet_id`" + } + }, + "summary": "Returns the transaction history, i.e the list of all the past transactions.", + "tags": [ + "Transactions" + ] + }, + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Payment" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Transaction" + } + }, + "400": { + "description": "Invalid `body`" + } + }, + "summary": "Generates a new transaction from the source to one or multiple target addresses.", + "tags": [ + "Transactions" + ] + } + }, + "/api/v1/transactions/certificates": { + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Redemption" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Transaction" + } + }, + "400": { + "description": "Invalid `body`" + } + }, + "summary": "Redeem a certificate", + "tags": [ + "Transactions" + ] + } + }, + "/api/v1/transactions/fees": { + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "description": "Estimate the fees which would incur from the input payment. This endpoint\n**does not** require a _spending password_ to be supplied as it generates\nunder the hood an unsigned transaction.\n", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Payment" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-EstimatedFees" + } + }, + "400": { + "description": "Invalid `body`" + } + }, + "summary": "Estimate the fees which would originate from the payment.", + "tags": [ + "Transactions" + ] + } + }, + "/api/v1/wallets": { + "get": { + "parameters": [ + { + "default": 1, + "description": "The page number to fetch for this request. The minimum is **1**. If nothing is specified, **this value defaults to 1** and always shows the first entries in the requested collection.\n", + "in": "query", + "minimum": 1, + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 10, + "description": "The number of entries to display for each page. The minimum is **1**, whereas the maximum is **50**. If nothing is specified, **this value defaults to 10**.\n", + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "per_page", + "required": false, + "type": "integer" + }, + { + "description": "A **FILTER** operation on a Wallet. Filters support a variety of queries on the resource. These are: \n\n- `EQ[value]` : only allow values equal to `value`\n- `LT[value]` : allow resource with attribute less than the `value`\n- `GT[value]` : allow objects with an attribute greater than the `value`\n- `GTE[value]` : allow objects with an attribute at least the `value`\n- `LTE[value]` : allow objects with an attribute at most the `value`\n- `RANGE[lo,hi]` : allow objects with the attribute in the range between `lo` and `hi`\n- `IN[a,b,c,d]` : allow objects with the attribute belonging to one provided.\n\n", + "in": "query", + "name": "id", + "type": "string" + }, + { + "description": "A **FILTER** operation on a Wallet. Filters support a variety of queries on the resource. These are: \n\n- `EQ[value]` : only allow values equal to `value`\n- `LT[value]` : allow resource with attribute less than the `value`\n- `GT[value]` : allow objects with an attribute greater than the `value`\n- `GTE[value]` : allow objects with an attribute at least the `value`\n- `LTE[value]` : allow objects with an attribute at most the `value`\n- `RANGE[lo,hi]` : allow objects with the attribute in the range between `lo` and `hi`\n- `IN[a,b,c,d]` : allow objects with the attribute belonging to one provided.\n\n", + "in": "query", + "name": "balance", + "type": "string" + }, + { + "allowEmptyValue": true, + "description": "A **SORT** operation on this Wallet. Allowed keys: `balance,created_at`.\n", + "in": "query", + "name": "sort_by", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-_Wallet_" + } + }, + "400": { + "description": "Invalid `per_page` or `page`" + } + }, + "summary": "Returns a list of the available wallets.", + "tags": [ + "Wallets" + ] + }, + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/NewWallet" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Wallet" + } + }, + "400": { + "description": "Invalid `body`" + } + }, + "summary": "Creates a new or restores an existing Wallet.", + "tags": [ + "Wallets" + ] + } + }, + "/api/v1/wallets/{walletId}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Deletes the given Wallet and all its accounts.", + "tags": [ + "Wallets" + ] + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Wallet" + } + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Returns the Wallet identified by the given walletId.", + "tags": [ + "Wallets" + ] + }, + "put": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WalletUpdate" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Wallet" + } + }, + "400": { + "description": "Invalid `body`" + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Update the Wallet identified by the given walletId.", + "tags": [ + "Wallets" + ] + } + }, + "/api/v1/wallets/{walletId}/accounts": { + "get": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "default": 1, + "description": "The page number to fetch for this request. The minimum is **1**. If nothing is specified, **this value defaults to 1** and always shows the first entries in the requested collection.\n", + "in": "query", + "minimum": 1, + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 10, + "description": "The number of entries to display for each page. The minimum is **1**, whereas the maximum is **50**. If nothing is specified, **this value defaults to 10**.\n", + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "per_page", + "required": false, + "type": "integer" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-_Account_" + } + }, + "400": { + "description": "Invalid `per_page` or `page`" + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Retrieves the full list of Accounts.", + "tags": [ + "Accounts" + ] + }, + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/NewAccount" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Account" + } + }, + "400": { + "description": "Invalid `body`" + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Creates a new Account for the given Wallet.", + "tags": [ + "Accounts" + ] + } + }, + "/api/v1/wallets/{walletId}/accounts/{accountId}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "path", + "maximum": 4294967295, + "minimum": 2147483648, + "name": "accountId", + "required": true, + "type": "number" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "`walletId` or `accountId` not found" + } + }, + "summary": "Deletes an Account.", + "tags": [ + "Accounts" + ] + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "path", + "maximum": 4294967295, + "minimum": 2147483648, + "name": "accountId", + "required": true, + "type": "number" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Account" + } + }, + "404": { + "description": "`walletId` or `accountId` not found" + } + }, + "summary": "Retrieves a specific Account.", + "tags": [ + "Accounts" + ] + }, + "put": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "path", + "maximum": 4294967295, + "minimum": 2147483648, + "name": "accountId", + "required": true, + "type": "number" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AccountUpdate" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Account" + } + }, + "400": { + "description": "Invalid `body`" + }, + "404": { + "description": "`walletId` or `accountId` not found" + } + }, + "summary": "Update an Account for the given Wallet.", + "tags": [ + "Accounts" + ] + } + }, + "/api/v1/wallets/{walletId}/accounts/{accountId}/addresses": { + "get": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "path", + "maximum": 4294967295, + "minimum": 2147483648, + "name": "accountId", + "required": true, + "type": "number" + }, + { + "default": 1, + "description": "The page number to fetch for this request. The minimum is **1**. If nothing is specified, **this value defaults to 1** and always shows the first entries in the requested collection.\n", + "in": "query", + "minimum": 1, + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 10, + "description": "The number of entries to display for each page. The minimum is **1**, whereas the maximum is **50**. If nothing is specified, **this value defaults to 10**.\n", + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "per_page", + "required": false, + "type": "integer" + }, + { + "description": "A **FILTER** operation on a WalletAddress. Filters support a variety of queries on the resource. These are: \n\n- `EQ[value]` : only allow values equal to `value`\n- `LT[value]` : allow resource with attribute less than the `value`\n- `GT[value]` : allow objects with an attribute greater than the `value`\n- `GTE[value]` : allow objects with an attribute at least the `value`\n- `LTE[value]` : allow objects with an attribute at most the `value`\n- `RANGE[lo,hi]` : allow objects with the attribute in the range between `lo` and `hi`\n- `IN[a,b,c,d]` : allow objects with the attribute belonging to one provided.\n\n", + "in": "query", + "name": "address", + "type": "string" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-AccountAddresses" + } + }, + "400": { + "description": "Invalid `per_page` or `page`" + }, + "404": { + "description": "`walletId` or `accountId` not found" + } + }, + "summary": "Retrieve only account's addresses.", + "tags": [ + "Accounts" + ] + } + }, + "/api/v1/wallets/{walletId}/accounts/{accountId}/amount": { + "get": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "path", + "maximum": 4294967295, + "minimum": 2147483648, + "name": "accountId", + "required": true, + "type": "number" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-AccountBalance" + } + }, + "404": { + "description": "`walletId` or `accountId` not found" + } + }, + "summary": "Retrieve only account's balance.", + "tags": [ + "Accounts" + ] + } + }, + "/api/v1/wallets/{walletId}/addresses": { + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "$ref": "#/definitions/Address" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-BatchImportResult _V1 Address_" + } + }, + "400": { + "description": "Invalid `body`" + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Batch import existing addresses", + "tags": [ + "Addresses" + ] + } + }, + "/api/v1/wallets/{walletId}/password": { + "put": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PasswordUpdate" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Wallet" + } + }, + "400": { + "description": "Invalid `body`" + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Updates the password for the given Wallet.", + "tags": [ + "Wallets" + ] + } + }, + "/api/v1/wallets/{walletId}/statistics/utxos": { + "get": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-UtxoStatistics" + } + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Returns Utxo statistics for the Wallet identified by the given walletId.", + "tags": [ + "Wallets" + ] + } + } + }, + "swagger": "2.0", + "tags": [ + { + "name": "Accounts" + }, + { + "name": "Addresses" + }, + { + "name": "Info" + }, + { + "description": "This section contains endpoints so-called 'Internal'. They are only expected to be used by advanced users of the API (e.g. Daedalus) with which there's a privileged communication channel. Backward-compatibility or existence of these endpoints between versions is not guaranteed and won't be enforced. Use at your own risks.", + "name": "Internal" + }, + { + "name": "Settings" + }, + { + "name": "Transactions" + }, + { + "name": "Wallets" + } + ] +} diff --git a/_data/swagger/v1/1.5.1-swagger.json b/_data/swagger/v1/1.5.1-swagger.json new file mode 100644 index 000000000..6b2eee1bc --- /dev/null +++ b/_data/swagger/v1/1.5.1-swagger.json @@ -0,0 +1,3171 @@ +{ + "definitions": { + "APIResponse-Account": { + "properties": { + "data": { + "$ref": "#/definitions/Account" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-AccountAddresses": { + "properties": { + "data": { + "$ref": "#/definitions/AccountAddresses" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-AccountBalance": { + "properties": { + "data": { + "$ref": "#/definitions/AccountBalance" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-BatchImportResult _V1 Address_": { + "properties": { + "data": { + "$ref": "#/definitions/BatchImportResult" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-EstimatedFees": { + "properties": { + "data": { + "$ref": "#/definitions/EstimatedFees" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-NodeInfo": { + "properties": { + "data": { + "$ref": "#/definitions/NodeInfo" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-NodeSettings": { + "properties": { + "data": { + "$ref": "#/definitions/NodeSettings" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-Transaction": { + "properties": { + "data": { + "$ref": "#/definitions/Transaction" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-UtxoStatistics": { + "properties": { + "data": { + "$ref": "#/definitions/UtxoStatistics" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-V1 SoftwareVersion": { + "properties": { + "data": { + "$ref": "#/definitions/V1SoftwareVersion" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-Wallet": { + "properties": { + "data": { + "$ref": "#/definitions/Wallet" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-WalletAddress": { + "properties": { + "data": { + "$ref": "#/definitions/WalletAddress" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-_Account_": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/Account" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-_Transaction_": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/Transaction" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-_WalletAddress_": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/WalletAddress" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "APIResponse-_Wallet_": { + "properties": { + "data": { + "items": { + "$ref": "#/definitions/Wallet" + }, + "type": "array" + }, + "meta": { + "$ref": "#/definitions/Metadata" + }, + "status": { + "$ref": "#/definitions/ResponseStatus" + } + }, + "required": [ + "data", + "status", + "meta" + ], + "type": "object" + }, + "Account": { + "example": { + "addresses": [ + { + "changeAddress": false, + "id": "iBULcLXh5E5uXjidkpqGuANxY85qwoURM8SF9G72YZm1D4WsT6PPKrZ9qdBAvuVqEazKczWB3aLzv4eX5n2ULGdxRxTFaiATuaapbC1kt9yr233bHY8p", + "ownership": "ambiguousOwnership", + "used": false + }, + { + "changeAddress": true, + "id": "2vCfMDNgQcTJ31f7TogT1HqkP2XQ1iH4JoBm6VRx7LP54jp2THiUwrNA2aEyaZjVwyJoRQgTsTDUy4C2RbpE7LS7Adb2wBMU5utrCxvt4MYkWZWzyJrgwq5bEAZK2BoSY2ea49E9hYek57tWQfiLGEnAf2g1Pqj2VLeSJUwQSNAqA7tawgskTtenMKZtes7myh4KnRdafYi77iSZYRAi5hEyzxEp7TmoPiPfXcFiELz7mLMpi9TYgY3u6ZL6FfRJ7x7SVZaxtEarYqkVUqvtx6pncv", + "ownership": "ambiguousOwnership", + "used": true + }, + { + "changeAddress": false, + "id": "VVF3hYNE48oyThCmXbzv7W7Deu8c3pnQdSHz6HXnTZdZca7RQXezPYDiaDU4N4h8ErGHuHu1e36edP1NqguAmpxLy2pXCmGM9X1rMzJuuivVJuy2HgxiKKStV4GoM133PgANmZyNvcpGutjdsz4p1UAgfP4gqggsUanV7jepjNhs7zoQdqACMUkTxSwUbjsXcQK5DJmwceY7dSk8GZ1cfonDeRwzKih5kgDD5TUzQ5bsYAj", + "ownership": "ambiguousOwnership", + "used": true + } + ], + "amount": 11091176260625603, + "index": 3660662023, + "name": "My account", + "walletId": "J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg" + }, + "properties": { + "addresses": { + "description": "Public addresses pointing to this account.", + "items": { + "$ref": "#/definitions/WalletAddress" + }, + "type": "array" + }, + "amount": { + "description": "Available funds, in Lovelace.", + "maximum": 45000000000000000, + "type": "number" + }, + "index": { + "description": "Account's index in the wallet, starting at 0.", + "maximum": 4294967295, + "minimum": 2147483648, + "type": "number" + }, + "name": { + "description": "Account's name.", + "type": "string" + }, + "walletId": { + "description": "Id of the wallet this account belongs to.", + "type": "string" + } + }, + "required": [ + "index", + "addresses", + "amount", + "name", + "walletId" + ], + "type": "object" + }, + "AccountAddresses": { + "example": { + "addresses": [ + { + "changeAddress": true, + "id": "5FCjkr138i9mqH39X3EH7jobj73Em5AWwLXdDwsSAq9HPSYTpyApe8LTex4mhKhNex5oGbTSMiTvh1i3bJ8Dw8AQfUx89T8GNzFeAmUzPHE", + "ownership": "ambiguousOwnership", + "used": false + }, + { + "changeAddress": true, + "id": "FHnt4NL7yPYFA9hUHPAFpXGxpij6QGHg5PBL3YuVbTZCdAGmjif35yQdC3eKQpz", + "ownership": "isOurs", + "used": false + } + ] + }, + "properties": { + "addresses": { + "description": "Public addresses pointing to this account.", + "items": { + "$ref": "#/definitions/WalletAddress" + }, + "type": "array" + } + }, + "required": [ + "addresses" + ], + "type": "object" + }, + "AccountBalance": { + "example": { + "amount": 25132995790248024 + }, + "properties": { + "amount": { + "description": "Available funds, in Lovelace.", + "maximum": 45000000000000000, + "type": "number" + } + }, + "required": [ + "amount" + ], + "type": "object" + }, + "AccountIndex": { + "maximum": 4294967295, + "minimum": 2147483648, + "type": "number" + }, + "AccountUpdate": { + "example": { + "name": "myAccount" + }, + "properties": { + "name": { + "description": "New account's name.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "Address": { + "format": "base58", + "type": "string" + }, + "AssuranceLevel": { + "enum": [ + "normal", + "strict" + ], + "type": "string" + }, + "BatchImportResult": { + "example": { + "failures": [], + "totalSuccess": 2 + }, + "properties": { + "failures": { + "description": "Entities failed to be imported, if any", + "items": { + "$ref": "#/definitions/Address" + }, + "type": "array" + }, + "totalSuccess": { + "description": "Total number of entities successfully imported", + "exclusiveMinimum": false, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "totalSuccess", + "failures" + ], + "type": "object" + }, + "BlockchainHeight": { + "properties": { + "quantity": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "blocks" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "BoundType": { + "enum": [ + "Log10" + ], + "type": "string" + }, + "EstimatedCompletionTime": { + "properties": { + "quantity": { + "minimum": 0, + "type": "number" + }, + "unit": { + "enum": [ + "milliseconds" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "EstimatedFees": { + "example": { + "estimatedAmount": 25132995790248024 + }, + "properties": { + "estimatedAmount": { + "description": "Estimated fees, in Lovelace.", + "maximum": 45000000000000000, + "type": "number" + } + }, + "required": [ + "estimatedAmount" + ], + "type": "object" + }, + "MaxTxSize": { + "properties": { + "quantity": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "bytes" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "Metadata": { + "properties": { + "pagination": { + "$ref": "#/definitions/PaginationMetadata" + } + }, + "required": [ + "pagination" + ], + "type": "object" + }, + "NewAccount": { + "example": { + "name": "\u0006", + "spendingPassword": "" + }, + "properties": { + "name": { + "description": "Account's name.", + "type": "string" + }, + "spendingPassword": { + "description": "Wallet's protection password, required if defined.", + "format": "hex|base16", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "NewAddress": { + "example": { + "accountIndex": 4142131051, + "spendingPassword": "0001010200010101000101020202020101020001020100020002010101000201", + "walletId": "J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg" + }, + "properties": { + "accountIndex": { + "description": "Target account's index to store this address in.", + "maximum": 4294967295, + "minimum": 2147483648, + "type": "number" + }, + "spendingPassword": { + "description": "Wallet's protection password, required if defined.", + "format": "hex|base16", + "type": "string" + }, + "walletId": { + "description": "Corresponding wallet identifier.", + "type": "string" + } + }, + "required": [ + "accountIndex", + "walletId" + ], + "type": "object" + }, + "NewWallet": { + "example": { + "assuranceLevel": "strict", + "backupPhrase": [ + "squirrel", + "material", + "silly", + "twice", + "direct", + "slush", + "pistol", + "razor", + "become", + "junk", + "kingdom", + "flee" + ], + "name": "My Wallet", + "operation": "restore", + "spendingPassword": "0202010002000102020002010202010002020100000102020201020000020102" + }, + "properties": { + "assuranceLevel": { + "description": "Desired assurance level based on the number of confirmations counter of each transaction.", + "enum": [ + "normal", + "strict" + ], + "type": "string" + }, + "backupPhrase": { + "description": "Backup phrase to restore the wallet.", + "items": { + "type": "string" + }, + "maxItems": 12, + "minItems": 12, + "type": "array" + }, + "name": { + "description": "Wallet's name.", + "type": "string" + }, + "operation": { + "description": "Create a new wallet or Restore an existing one.", + "enum": [ + "create", + "restore" + ], + "type": "string" + }, + "spendingPassword": { + "description": "Optional (but recommended) password to protect the wallet on sensitive operations.", + "format": "hex|base16", + "type": "string" + } + }, + "required": [ + "backupPhrase", + "assuranceLevel", + "name", + "operation" + ], + "type": "object" + }, + "NodeInfo": { + "example": { + "blockchainHeight": { + "quantity": 12513853667654321111, + "unit": "blocks" + }, + "localBlockchainHeight": { + "quantity": 12988764939106870466, + "unit": "blocks" + }, + "localTimeInformation": { + "localTimeDifference": { + "quantity": 3, + "unit": "microseconds" + }, + "status": "available" + }, + "subscriptionStatus": { + "150.136.236.249:2504:2": "subscribed", + "242.71.149.224:2160:1": "subscribed" + }, + "syncProgress": { + "quantity": 14, + "unit": "percent" + } + }, + "properties": { + "blockchainHeight": { + "description": "If known, the current blockchain height, in number of blocks.", + "properties": { + "quantity": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "blocks" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "localBlockchainHeight": { + "description": "Local blockchain height, in number of blocks.", + "properties": { + "quantity": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "blocks" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "localTimeInformation": { + "description": "Information about the clock on this node. The field 'localTimeDifference' is only defined when the status is 'available'", + "properties": { + "localTimeDifference": { + "properties": { + "quantity": { + "type": "integer" + }, + "unit": { + "enum": [ + "microseconds" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "status": { + "enum": [ + "unavailable", + "pending", + "available" + ], + "type": "string" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "subscriptionStatus": { + "additionalProperties": { + "$ref": "#/definitions/SubscriptionStatus" + }, + "description": "Is the node connected to the network?", + "type": "object" + }, + "syncProgress": { + "description": "Syncing progression, in percentage.", + "properties": { + "quantity": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "percent" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + } + }, + "required": [ + "syncProgress", + "localBlockchainHeight", + "localTimeInformation", + "subscriptionStatus" + ], + "type": "object" + }, + "NodeSettings": { + "example": { + "feePolicy": { + "a": { + "quantity": -12.457099816, + "unit": "lovelace/byte" + }, + "b": { + "quantity": -0.33614655, + "unit": "lovelace" + } + }, + "gitRevision": "0e1c9322a", + "maxTxSize": { + "quantity": 0, + "unit": "bytes" + }, + "projectVersion": "3", + "securityParameter": 1, + "slotCount": 2, + "slotDuration": { + "quantity": 60, + "unit": "milliseconds" + }, + "slotId": { + "epoch": 3216935222109, + "slot": 41 + }, + "softwareInfo": { + "applicationName": "ZY2", + "version": 1 + } + }, + "properties": { + "feePolicy": { + "description": "The fee policy.", + "properties": { + "a": { + "description": "Slope of the linear curve", + "properties": { + "quantity": { + "format": "double", + "type": "number" + }, + "unit": { + "enum": [ + "lovelace/byte" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "b": { + "description": "Intercept of the linear curve", + "properties": { + "quantity": { + "format": "double", + "type": "number" + }, + "unit": { + "enum": [ + "lovelace" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + } + }, + "required": [ + "a", + "b" + ], + "type": "object" + }, + "gitRevision": { + "description": "Git revision of this deployment.", + "type": "string" + }, + "maxTxSize": { + "description": "The largest allowed transaction size", + "properties": { + "quantity": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "bytes" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "projectVersion": { + "description": "Current project's version.", + "type": "string" + }, + "securityParameter": { + "description": "The security parameter.", + "minimum": 0, + "type": "number" + }, + "slotCount": { + "description": "The number of slots per epoch.", + "minimum": 0, + "type": "number" + }, + "slotDuration": { + "description": "Duration of a slot.", + "properties": { + "quantity": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "milliseconds" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "slotId": { + "description": "The current slot and epoch.", + "properties": { + "epoch": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "slot": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "softwareInfo": { + "description": "Various pieces of information about the current software.", + "properties": { + "applicationName": { + "type": "string" + }, + "version": { + "maximum": 4294967295, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "applicationName", + "version" + ], + "type": "object" + } + }, + "required": [ + "slotId", + "slotDuration", + "slotCount", + "softwareInfo", + "projectVersion", + "gitRevision", + "maxTxSize", + "feePolicy", + "securityParameter" + ], + "type": "object" + }, + "Page": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "PaginationMetadata": { + "properties": { + "page": { + "$ref": "#/definitions/Page" + }, + "perPage": { + "$ref": "#/definitions/PerPage" + }, + "totalEntries": { + "maximum": 9223372036854775807, + "minimum": 0, + "type": "number" + }, + "totalPages": { + "maximum": 9223372036854775807, + "minimum": 0, + "type": "number" + } + }, + "required": [ + "totalPages", + "page", + "perPage", + "totalEntries" + ], + "type": "object" + }, + "PasswordUpdate": { + "example": { + "new": "0200020100010100020202010000000201020000020002020200010200010102", + "old": "" + }, + "properties": { + "new": { + "description": "New passowrd.", + "format": "hex|base16", + "type": "string" + }, + "old": { + "description": "Old password.", + "format": "hex|base16", + "type": "string" + } + }, + "required": [ + "old", + "new" + ], + "type": "object" + }, + "Payment": { + "example": { + "destinations": [ + { + "address": "LDTseZq14n8z9d48NnMLb5F5jPK3myRvrDW7EDCeuqAFssvXTXiAtg1YftZFCRHAmCTiKEbv2rNKb5v5miYQZJnpnD6s12nPzEfX93nvV5yH7CiadLch5bC988QGd7FEvTSBAYbdwBHVY3vRCbtETm9jx88vtFCxXp9MqHrsjDkthMuhpEWSdYKMv3h7uynQdBhJ1sTKBhftPDBFpJtVed3oLbZGHk4MxHL3puENZqC", + "amount": 7893389421760074 + }, + { + "address": "9C7ENmch8B5UFDYeXSYatfXkSsPMViXw2GG2qgLhYQJFn7xPK9KuZWQqz8Lg1PuxoHAF28LnVW6uyvxq4jvGQ55SkAGtqd5BZTDE2geb1TCpxLRVNSL66LdPZ9dn9ob9JuYCgfq48HNoa6FW3yTQpZvujznPYoinb9p61ouAVukwZYoWmst2QxkTRAM7ThdeL9qB4UZY7PkdgrLhCtXK4okhgLZXUT1NR1uvmx8LK4hBmRiFteoRWwQpiFMYAY1Fz3qnyJ3LU3XEywteZR1EwBHQBno2gGpCUW1vYYFXP9iuadtBCGKpfzRwsk3MDZ4Sty8mUsT2nJVgqV6PmgJ", + "amount": 23867890792708363 + } + ], + "groupingPolicy": "OptimizeForHighThroughput", + "source": { + "accountIndex": 2185829225, + "walletId": "J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg" + }, + "spendingPassword": "0200020100010100020202010000000201020000020002020200010200010102" + }, + "properties": { + "destinations": { + "description": "One or more destinations for the payment.", + "items": { + "$ref": "#/definitions/PaymentDistribution" + }, + "minItems": 1, + "type": "array" + }, + "groupingPolicy": { + "description": "Optional strategy to use for selecting the transaction inputs.", + "enum": [ + "OptimizeForSecurity", + "OptimizeForHighThroughput" + ], + "type": "string" + }, + "source": { + "description": "Source for the payment.", + "example": { + "accountIndex": 3973314086, + "walletId": "J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg" + }, + "properties": { + "accountIndex": { + "description": "Corresponding account's index on the wallet.", + "maximum": 4294967295, + "minimum": 2147483648, + "type": "number" + }, + "walletId": { + "description": "Target wallet identifier to reach.", + "type": "string" + } + }, + "required": [ + "walletId", + "accountIndex" + ], + "type": "object" + }, + "spendingPassword": { + "description": "Wallet's protection password, required to spend funds if defined.", + "format": "hex|base16", + "type": "string" + } + }, + "required": [ + "source", + "destinations" + ], + "type": "object" + }, + "PaymentDistribution": { + "example": { + "address": "SCFaachJNvGSA1c4p441uQT1zWMPRpepbs4y2TQVNBb1dwfKMioaNaFs9wDJBdPgSKTPXzUAQkripQVq1wb3Pszd9m9wM96RExuu4Csr6NHod9mk31wBqfnvHWFUypLkcmTiPFMREgbtmcCayepA3nAsfvFbNpTfj7NCXK1KKyesH3n6ua3WQ6C5NNrrC7j9zXTeeK58brceoCxBuqvZfrxvfpT76yMoLQ6rk7gBCFny8Jpt4NwkTabs7UnbehBy6vRQt38JaPHmg35EiDWmnZYA", + "amount": 361333354208714 + }, + "properties": { + "address": { + "description": "Address to map coins to.", + "format": "base58", + "type": "string" + }, + "amount": { + "description": "Amount of coin to bind, in Lovelace.", + "maximum": 45000000000000000, + "type": "number" + } + }, + "required": [ + "address", + "amount" + ], + "type": "object" + }, + "PaymentSource": { + "example": { + "accountIndex": 3973314086, + "walletId": "J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg" + }, + "properties": { + "accountIndex": { + "description": "Corresponding account's index on the wallet.", + "maximum": 4294967295, + "minimum": 2147483648, + "type": "number" + }, + "walletId": { + "description": "Target wallet identifier to reach.", + "type": "string" + } + }, + "required": [ + "walletId", + "accountIndex" + ], + "type": "object" + }, + "PerPage": { + "default": 10, + "maximum": 50, + "minimum": 1, + "type": "integer" + }, + "Redemption": { + "example": { + "accountIndex": 3973314086, + "mnemonic": null, + "redemptionCode": "ABAAB", + "spendingPassword": "0000000201010102020001000201020000020102010000020102020100010201", + "walletId": "J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg" + }, + "properties": { + "accountIndex": { + "$ref": "#/definitions/AccountIndex" + }, + "mnemonic": { + "description": "An optional mnemonic. This must be provided for a paper certificate redemption.", + "items": { + "type": "string" + }, + "maxItems": 9, + "minItems": 9, + "type": "array" + }, + "redemptionCode": { + "description": "The redemption code associated with the Ada to redeem.", + "type": "string" + }, + "spendingPassword": { + "description": "An optional spending password. This must match the password for the provided wallet ID and account index.", + "format": "hex|base16", + "type": "string" + }, + "walletId": { + "$ref": "#/definitions/WalletId" + } + }, + "required": [ + "redemptionCode", + "spendingPassword", + "walletId", + "accountIndex" + ], + "type": "object" + }, + "RedemptionMnemonic": { + "items": { + "type": "string" + }, + "maxItems": 9, + "minItems": 9, + "type": "array" + }, + "ResponseStatus": { + "enum": [ + "success", + "fail", + "error" + ], + "type": "string" + }, + "SecurityParameter": { + "minimum": 0, + "type": "number" + }, + "ShieldedRedemptionCode": { + "type": "string" + }, + "SlotDuration": { + "properties": { + "quantity": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "milliseconds" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "SlotId": { + "properties": { + "epoch": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "slot": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "SubscriptionStatus": { + "enum": [ + "subscribed", + "subscribing" + ], + "type": "string" + }, + "SyncPercentage": { + "properties": { + "quantity": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "percent" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "SyncProgress": { + "example": { + "estimatedCompletionTime": { + "quantity": 3000, + "unit": "milliseconds" + }, + "percentage": { + "quantity": 14, + "unit": "percent" + }, + "throughput": { + "quantity": 400, + "unit": "blocksPerSecond" + } + }, + "properties": { + "estimatedCompletionTime": { + "description": "The estimated time the wallet is expected to be fully sync, based on the information available.", + "properties": { + "quantity": { + "minimum": 0, + "type": "number" + }, + "unit": { + "enum": [ + "milliseconds" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "percentage": { + "description": "The sync percentage, from 0% to 100%.", + "properties": { + "quantity": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "unit": { + "enum": [ + "percent" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "throughput": { + "description": "The sync throughput, measured in blocks/s.", + "properties": { + "quantity": { + "type": "number" + }, + "unit": { + "enum": [ + "blocksPerSecond" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + } + }, + "required": [ + "estimatedCompletionTime", + "throughput", + "percentage" + ], + "type": "object" + }, + "SyncState": { + "properties": { + "data": { + "$ref": "#/definitions/SyncProgress" + }, + "tag": { + "enum": [ + "restoring", + "synced" + ], + "type": "string" + } + }, + "required": [ + "tag" + ], + "type": "object" + }, + "SyncThroughput": { + "properties": { + "quantity": { + "type": "number" + }, + "unit": { + "enum": [ + "blocksPerSecond" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "TimeInfo": { + "description": "When 'available', returns an extra 'localTimeDifference' about the difference in microseconds between the node time and the NTP server.", + "properties": { + "localTimeDifference": { + "properties": { + "quantity": { + "type": "integer" + }, + "unit": { + "enum": [ + "microseconds" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "status": { + "enum": [ + "unavailable", + "pending", + "available" + ], + "type": "string" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "Timestamp": { + "description": "Time in ISO 8601 format", + "type": "string" + }, + "Transaction": { + "example": { + "amount": 28311699119270855, + "confirmations": 4, + "creationTime": "1977-09-26T13:35:28.425218", + "direction": "outgoing", + "id": "848d6fadc04dcd9af1bc462df5938ecfbe810c5ecb50971db1cf7ae224bb5955", + "inputs": [ + { + "address": "9C7ENmch8B5WHJiRLFVogY6TfQJwd85osxtKubsQda5N8P2X61WLDRw1BNhAJ6hCQ4fwcNjgjTDoKnoi9WzxEcwdteWbh7gw6vjCAYfpDWWq6MjjJKb8wS8kDVH51DuyYahvVUKCkSGrfxcgqk5hAj7XtRTmnzxH9ZkW7KPt94UcEyCdRjMsh4vKoKEaZzjK7gKXyZPE7frQTKHhjteqyNgKDeZAw7KF3HqV7WjseHocAUMcUQRBHW3DsAtt5rDo4oZkBGNmcSogDkXTCdzmQi7YVwD634cUy5xpJE9DFqbUAsGt48G6MQ3yeQusJ9mgnAntLjN5UVUKLLQttDA", + "amount": 6374888950522614 + }, + { + "address": "2441xhDQ65ixn9BDToFk8SvdfbecLtn6PpDYTYpD9L4QHDj3Cix7erZAzHQ3YVBVQNYvnBMQGMSmebZdmKxHVmxN2FkBBhY2dj9SDxASQUv3zDBWy7qLdQwWS", + "amount": 36892870043518670 + }, + { + "address": "LrKNkKxZoMeMGtUAe39j1P3pn2kef63inkxmT3wLPtwaqHLpmFpaYJAki8BSwc6Wk8M9crSiMbS4SPq5vPS7bUuzwNbEnmcpAgyzJPgiNLPg7QZZRrbtHXttLySGiY2tUaohxFpiiFcHUBwiL7q7SEZWKbZM1yeWB79YThxtubL3nF73S6B", + "amount": 42128232960387047 + }, + { + "address": "2cWKMJemoBam7gg1y5K2aFDhAm5L8fVc96NfxgcGhdLMFTsToNAU9t5HVdBBQKy4iDswL", + "amount": 16412596055594313 + } + ], + "outputs": [ + { + "address": "3Etp4Fs328mY5kvjC1RECHf129dyA2N85Ra9GETYpKeXQuGsMkJhG9qHpoXKQjNgN4unvBrPKdr77gADwzpeHkKQJACVBEgVgTY7LACDdgEthwenY7gs5BABEncwCrjdXyYRKWaY9GL5op6mwHBGpAA5UmEou7ATU1U4qn9KhKD31BnzyqapNVood", + "amount": 12346308348677985 + }, + { + "address": "YQdiVKZwx4SuCmAGcAZhRwDabqs7YMh1uTNqVCkPWEcsjUGAZyKoiKBu3YBhFyvoR4C2eYQ", + "amount": 3299396411509641 + }, + { + "address": "zCx6iXuvtn6P9m2KQ9mbZg8sxhknmSibuPZA4yyYLCtkMFjjdGQEjbRaWPjHdev67mNjhzewG7rCgbuwNYVsoHqzVu6NikeF5qA4hugUJVsu9N8U8hzdtrUK1bem4oMfaujTgm6mx8GmP5haT2j1sqjmQuNJ8QvranW1XSbkPxqU9CJa2Q2CCuHmzB4vGy7uM3qP8cuMmjmp3NuGKWTYv6U7riZQyU2AZ31mqkVi", + "amount": 11255318654184133 + }, + { + "address": "2Fc9FhbWKyhEGnFnqeat6M2bvZrs88sjaVovtqeDouXwc1zZHESBN4oixxSArJnqesPQbowsN2mX4nD87eWAYUYS8C2wW8TSFhCRz1AcFWE9mhrq3ExqYEAgowurBLuCgkno34rHsbvF2PLw8gWR8qnZafr1H7trVrY8WKxUppXgiQp83uzLuUZWFHMtDcWx26H3cy34jrEHgQHpzGHNepqdPCcJ2B3LEcEVHynDNE88FkFwe2uCANtatm3RuUQdFd3QYqoBXjppFLo8aX5ztPEEyKEHCXEfUmxxSRCxpwDo8JbwoSYBYtnrynXXbSYPhqPnkYNpMPfGfM", + "amount": 3709889702173341 + } + ], + "status": { + "data": {}, + "tag": "persisted" + }, + "type": "foreign" + }, + "properties": { + "amount": { + "description": "Coins moved as part of the transaction, in Lovelace.", + "maximum": 45000000000000000, + "type": "number" + }, + "confirmations": { + "description": "Number of confirmations.", + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "creationTime": { + "description": "Timestamp indicating when the transaction was created.", + "type": "string" + }, + "direction": { + "description": "Direction for this transaction.", + "enum": [ + "outgoing", + "incoming" + ], + "type": "string" + }, + "id": { + "description": "Transaction's id.", + "type": "string" + }, + "inputs": { + "description": "One or more input money distributions.", + "items": { + "$ref": "#/definitions/PaymentDistribution" + }, + "minItems": 1, + "type": "array" + }, + "outputs": { + "description": "One or more ouputs money distributions.", + "items": { + "$ref": "#/definitions/PaymentDistribution" + }, + "minItems": 1, + "type": "array" + }, + "status": { + "description": "Shows whether or not the transaction is accepted.", + "properties": { + "data": { + "type": "object" + }, + "tag": { + "enum": [ + "applying", + "inNewestBlocks", + "persisted", + "wontApply", + "creating" + ], + "type": "string" + } + }, + "required": [ + "tag", + "data" + ], + "type": "object" + }, + "type": { + "description": "Whether the transaction is entirely local or foreign.", + "enum": [ + "local", + "foreign" + ], + "type": "string" + } + }, + "required": [ + "id", + "confirmations", + "amount", + "inputs", + "outputs", + "type", + "direction", + "creationTime", + "status" + ], + "type": "object" + }, + "TransactionDirection": { + "enum": [ + "outgoing", + "incoming" + ], + "type": "string" + }, + "TransactionStatus": { + "properties": { + "data": { + "type": "object" + }, + "tag": { + "enum": [ + "applying", + "inNewestBlocks", + "persisted", + "wontApply", + "creating" + ], + "type": "string" + } + }, + "required": [ + "tag", + "data" + ], + "type": "object" + }, + "TransactionType": { + "description": "A transaction is 'local' if all the inputs and outputs belong to the current wallet. A transaction is foreign if the transaction is not local to this wallet.", + "enum": [ + "local", + "foreign" + ], + "type": "string" + }, + "TxFeePolicy": { + "properties": { + "a": { + "description": "Slope of the linear curve", + "properties": { + "quantity": { + "format": "double", + "type": "number" + }, + "unit": { + "enum": [ + "lovelace/byte" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + }, + "b": { + "description": "Intercept of the linear curve", + "properties": { + "quantity": { + "format": "double", + "type": "number" + }, + "unit": { + "enum": [ + "lovelace" + ], + "type": "string" + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + } + }, + "required": [ + "a", + "b" + ], + "type": "object" + }, + "UtxoStatistics": { + "properties": { + "allStakes": { + "minimum": 0, + "type": "number" + }, + "boundType": { + "$ref": "#/definitions/BoundType" + }, + "histogram": { + "properties": { + "10": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "100": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "1000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "10000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "100000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "1000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "10000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "100000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "1000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "10000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "100000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "1000000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "10000000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "100000000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "1000000000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "10000000000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + }, + "45000000000000000": { + "maximum": 18446744073709551615, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "histogram", + "allStakes" + ], + "type": "object" + }, + "V1AddressOwnership": { + "enum": [ + "isOurs", + "ambiguousOwnership" + ], + "type": "string" + }, + "V1BackupPhrase": { + "items": { + "type": "string" + }, + "maxItems": 12, + "minItems": 12, + "type": "array" + }, + "V1Coin": { + "maximum": 45000000000000000, + "type": "number" + }, + "V1Core.SlotCount": { + "minimum": 0, + "type": "number" + }, + "V1InputSelectionPolicy": { + "enum": [ + "OptimizeForSecurity", + "OptimizeForHighThroughput" + ], + "type": "string" + }, + "V1PassPhrase": { + "format": "hex|base16", + "type": "string" + }, + "V1SoftwareVersion": { + "properties": { + "applicationName": { + "type": "string" + }, + "version": { + "maximum": 4294967295, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "applicationName", + "version" + ], + "type": "object" + }, + "V1Version": { + "type": "string" + }, + "Wallet": { + "example": { + "assuranceLevel": "normal", + "balance": 41984918983627325, + "createdAt": "2032-07-26T13:46:01.035803", + "hasSpendingPassword": false, + "id": "J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg", + "name": "My wallet", + "spendingPasswordLastUpdate": "2029-04-05T12:13:13.241896", + "syncState": { + "data": null, + "tag": "synced" + } + }, + "properties": { + "assuranceLevel": { + "description": "The assurance level of the wallet.", + "enum": [ + "normal", + "strict" + ], + "type": "string" + }, + "balance": { + "description": "Current balance, in Lovelace.", + "maximum": 45000000000000000, + "type": "number" + }, + "createdAt": { + "description": "The timestamp that the wallet was created.", + "type": "string" + }, + "hasSpendingPassword": { + "description": "Whether or not the wallet has a passphrase.", + "type": "boolean" + }, + "id": { + "description": "Unique wallet identifier.", + "type": "string" + }, + "name": { + "description": "Wallet's name.", + "type": "string" + }, + "spendingPasswordLastUpdate": { + "description": "The timestamp that the passphrase was last updated.", + "type": "string" + }, + "syncState": { + "description": "The sync state for this wallet.", + "properties": { + "data": { + "$ref": "#/definitions/SyncProgress" + }, + "tag": { + "enum": [ + "restoring", + "synced" + ], + "type": "string" + } + }, + "required": [ + "tag" + ], + "type": "object" + } + }, + "required": [ + "id", + "name", + "balance", + "hasSpendingPassword", + "spendingPasswordLastUpdate", + "createdAt", + "assuranceLevel", + "syncState" + ], + "type": "object" + }, + "WalletAddress": { + "example": { + "changeAddress": false, + "id": "2Tp1cYozcWTnzCJquF2wqpqYofU89jEyDB6z9PDjvJqUA6xeA56iK5HzkBqFNCvwfFLbB61f2HQVw5rDnLDgHCsVHvbUx52xBLU7kUgHd298og4vWfu37hoByu4Ni79v84PGbutuPgzwb1KFeLDL1ShCoiqUfnQAcZrJda4qtoyvh6zfRtwkxs3WiUbPMcT1pPWSQ2VVuPpKY5pmUr8vzpGmSBfCj6vN9k35pSYR3q6pn", + "ownership": "ambiguousOwnership", + "used": true + }, + "properties": { + "changeAddress": { + "description": "True if this address stores change from a previous transaction.", + "type": "boolean" + }, + "id": { + "description": "Actual address.", + "format": "base58", + "type": "string" + }, + "ownership": { + "description": "'isOurs' if this address is recognised as ours, 'ambiguousOwnership' if the node doesn't have information to make a unambiguous statement.", + "enum": [ + "isOurs", + "ambiguousOwnership" + ], + "type": "string" + }, + "used": { + "description": "True if this address has been used.", + "type": "boolean" + } + }, + "required": [ + "id", + "used", + "changeAddress", + "ownership" + ], + "type": "object" + }, + "WalletId": { + "type": "string" + }, + "WalletImport": { + "example": { + "filePath": "/Users/foo/Documents/wallet_to_import.key", + "spendingPassword": "" + }, + "properties": { + "filePath": { + "description": "The path to the .key file holding the backup.", + "type": "string" + }, + "spendingPassword": { + "description": "An optional spending password to set for the imported wallet.", + "format": "hex|base16", + "type": "string" + } + }, + "required": [ + "filePath" + ], + "type": "object" + }, + "WalletOperation": { + "enum": [ + "create", + "restore" + ], + "type": "string" + }, + "WalletUpdate": { + "example": { + "assuranceLevel": "normal", + "name": "My Wallet" + }, + "properties": { + "assuranceLevel": { + "description": "New assurance level.", + "enum": [ + "normal", + "strict" + ], + "type": "string" + }, + "name": { + "description": "New wallet's name.", + "type": "string" + } + }, + "required": [ + "assuranceLevel", + "name" + ], + "type": "object" + } + }, + "host": "127.0.0.1:8090", + "info": { + "description": "This is the specification for the Cardano Wallet API, automatically generated as a [Swagger](https://swagger.io/) spec from the [Servant](http://haskell-servant.readthedocs.io/en/stable/) API of [Cardano](https://github.com/input-output-hk/cardano-sl).\n\nProtocol Version | Git Revision\n-------------------|-------------------\ncardano-sl:14 | 57a0d236eed59c48214ee70128549d6cfdbc73db\n\n\nGetting Started\n===============\n\nIn the following examples, we will use *curl* to illustrate request to an API running on the default port **8090**.\n\nPlease note that wallet web API uses TLS for secure communication. Requests to the API need to\nsend a client CA certificate that was used when launching the node and identifies the client as\nbeing permitted to invoke the server API.\n\nCreating a New Wallet\n---------------------\n\nYou can create your first wallet using the [`POST /api/v1/wallets`](#tag/Wallets%2Fpaths%2F~1api~1v1~1wallets%2Fpost) endpoint as follow:\n\n```\ncurl -X POST https://localhost:8090/api/v1/wallets \\\n -H \"Accept: application/json; charset=utf-8\" \\\n -H \"Content-Type: application/json; charset=utf-8\" \\\n --cert ./scripts/tls-files/client.pem \\\n --cacert ./scripts/tls-files/ca.crt \\\n -d '{\n \"operation\": \"create\",\n \"backupPhrase\": [\"squirrel\",\"material\",\"silly\",\"twice\",\"direct\",\"slush\",\"pistol\",\"razor\",\"become\",\"junk\",\"kingdom\",\"flee\"],\n \"assuranceLevel\": \"normal\",\n \"name\": \"MyFirstWallet\",\n \"spendingPassword\": \"5416b2988745725998907addf4613c9b0764f04959030e1b81c603b920a115d0\"\n}'\n```\n\n> **Warning**: Those 12 mnemonic words given for the backup phrase act as an example. **Do\n> not** use them on a production system. See the section below about mnemonic codes for more\n> information.\n\nThe `spendingPassword` is optional but highly recommended. It a string of 32\ncharacters, encoded in base 16, yielding to an hexadecimal sequence of 64 bytes.\nThis passphrase is required for sensitive operations on the wallet and adds\nan extra security layer to it.\n\nTo generate a valid `spendingPassword`, please follow the following steps:\n\n- Pick a long sentence using a wide variety of characters (uppercase, lowercase,\n whitespace, punctuation, etc). Using a computer to randomly generate\n a passphrase is best, as humans aren't a good source of randomness.\n\n- Compute an appropriate hash of this passphrase. You'll need to use an\n algorithm that yields a 32-byte long string (e.g. *SHA256* or *BLAKE2b*).\n\n- Hex-encode the 32-byte hash into a 64-byte sequence of bytes.\n\nAs a response, the API provides you with a unique wallet `id` to be used in subsequent\nrequests. Make sure to store it / write it down. Note that every API response is\n[jsend-compliant](https://labs.omniti.com/labs/jsend); Cardano also augments responses with\nmeta-data specific to pagination. More details in the section below about [Pagination](#section/Pagination)\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"createdAt\": \"2029-10-05T15:07:16.313354\",\n \"syncState\": {\n \"tag\": \"synced\",\n \"data\": null\n },\n \"balance\": 43665522219500065,\n \"hasSpendingPassword\": false,\n \"assuranceLevel\": \"strict\",\n \"name\": \"My wallet\",\n \"id\": \"J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg\",\n \"spendingPasswordLastUpdate\": \"1999-05-26T17:51:24.639141\"\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nYou have just created your first wallet. Information about this wallet can be retrieved using the [`GET /api/v1/wallets/{walletId}`](#tag/Wallets%2Fpaths%2F~1api~1v1~1wallets~1{walletId}%2Fget)\nendpoint as follows:\n\n```\ncurl -X GET https://localhost:8090/api/v1/wallets/{{walletId}} \\\n -H \"Accept: application/json; charset=utf-8\" \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\nReceiving ADA\n-------------\n\nTo receive _ADA_ from other users you should provide your address. This address can be obtained\nfrom an account. Each wallet contains at least one account. An account is like a pocket inside\nof your wallet. Vew all existing accounts of a wallet by using the [`GET /api/v1/wallets/{{walletId}}/accounts`](#tag/Accounts%2Fpaths%2F~1api~1v1~1wallets~1{walletId}~1accounts%2Fget)\nendpoint:\n\n```\ncurl -X GET https://localhost:8090/api/v1/wallets/{{walletId}}/accounts?page=1&per_page=10 \\\n -H \"Accept: application/json; charset=utf-8\" \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\nSince you have, for now, only a single wallet, you'll see something like this:\n\n```json\n{\n \"status\": \"success\",\n \"data\": [\n {\n \"amount\": 29208924123228353,\n \"addresses\": [\n {\n \"used\": true,\n \"changeAddress\": true,\n \"id\": \"7J1MaQmKydNZFkSLuQ57KHDyEe5hDaVaoHfxqraW9MEEPSzVwgFCGHcRNicc8HfTQrQRD2Fe5M6ayQE2UeVQp91RxS9NvRm6Dme2MEDjK6TNTGx\",\n \"ownership\": \"ambiguousOwnership\"\n }\n ],\n \"name\": \"My account\",\n \"walletId\": \"J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg\",\n \"index\": 2379541633\n },\n {\n \"amount\": 33750393777694218,\n \"addresses\": [\n {\n \"used\": false,\n \"changeAddress\": true,\n \"id\": \"2657WMsDfac79WyvE2tqb1bGGWnU9euc7NA51qv6etiHjXxQ2YX4oAub6pj8TdVnH\",\n \"ownership\": \"ambiguousOwnership\"\n },\n {\n \"used\": true,\n \"changeAddress\": true,\n \"id\": \"7TLVhuQreVUZZh5qABV7Z8LRpZvvjHrsYEa3wQTPbLZnGmFfnkCrVbF155EV9DdnzGgDhfGYRXXUKr8zfdbadon1BqVq2vziwTD3uLHb3694MLx1y6YxFfUNLknZuhNGFAYQN6eAxiCW34YyUnoFgzA4ytHTfs7zgUoL2Wk5iLNUHCqvLbmNxuKG9x4E245HVHvQ3NFjXgmDzahvebP2p77bt9yokHbSxACGSAzDcytKtv\",\n \"ownership\": \"ambiguousOwnership\"\n },\n {\n \"used\": true,\n \"changeAddress\": false,\n \"id\": \"2Wcg6zEnC1VpLnrJKB7bnEgzzFNMzto9pgyM4LpKRB4wGKiKLXddRdhiJEtb84Wp9ph1zJ2PjrRzP36SaoXKTF4bos9UKpuvzyz5DWCadFZtYDWYNvYMY8iTEHKtkqazSv8cBvEmSyAmsSWzG5G3DByVBAFQ3v8j5Ke7uvBR7rXYzD7stR3Ty\",\n \"ownership\": \"ambiguousOwnership\"\n }\n ],\n \"name\": \"My account\",\n \"walletId\": \"J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg\",\n \"index\": 4165966019\n }\n ],\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nAll the wallet's accounts are listed under the `addresses` field. You can communicate one of\nthese addresses to receive _ADA_ on the associated account.\n\n\nSending ADA\n-----------\n\nIn order to send _ADA_ from one of your accounts to another address, you must create a new\npayment transaction using the [`POST /api/v1/transactions`](#tag/Transactions%2Fpaths%2F~1api~1v1~1transactions%2Fpost)\nendpoint as follows:\n\n```\ncurl -X POST https://localhost:8090/api/v1/transactions \\\n -H \"Accept: application/json; charset=utf-8\" \\\n -H \"Content-Type: application/json; charset=utf-8\" \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem \\\n -d '{\n \"destinations\": [{\n \"amount\": 14,\n \"address\": \"A7k5bz1QR2...Tx561NNmfF\"\n }],\n \"source\": {\n \"accountIndex\": 0,\n \"walletId\": \"Ae2tdPwUPE...8V3AVTnqGZ\"\n },\n \"spendingPassword\": \"5416b2988745725998907addf4613c9b0764f04959030e1b81c603b920a115d0\"\n}'\n```\n\nNote that, in order to perform a transaction, you need to have enough existing _ADA_ on the\nsource account! The Cardano API is designed to accomodate multiple recipients payments\nout-of-the-box; notice how `destinations` is a list of addresses (and corresponding amounts).\n\nWhen the transaction succeeds, funds are no longer available in the sources addresses, and are\nsoon made available to the destinations within a short delay. Note that, you can at any time see\nthe status of your wallets by using the [`GET /api/v1/transactions`](#tag/Transactions%2Fpaths%2F~1api~1v1~1transactions%2Fget)\nendpoint as follows:\n\n```\ncurl -X GET https://localhost:8090/api/v1/transactions?wallet_id=Ae2tdPwUPE...8V3AVTnqGZ\\\n -H \"Accept: application/json; charset=utf-8\" \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\nHere we constrained the request to a specific account. After our previous transaction the output\nshould look roughly similar to this:\n\n```json\n{\n \"status\": \"success\",\n \"data\": [\n {\n \"creationTime\": \"1992-04-19T20:16:49.472681\",\n \"status\": {\n \"tag\": \"applying\",\n \"data\": {}\n },\n \"amount\": 18382944037988940,\n \"inputs\": [\n {\n \"amount\": 2089878288955521,\n \"address\": \"9C7ENmch8B5d63erCzLDYQCNc5SSXAA5SLCBKckVaYR1coY1c3iyTwyT576WpbMbruKstvDrNvJ3iNwv5dGcwhdSTBjGDLYpEHA7jkBCMaKE3YDiSsCkUj2xoNC6FUtxcsAJhhDKjzhRD25ezcPJgoh9MxLKr2jPsNkPtnPy3qebPJYWH3dSp1TrBGrTni8fTGgszwJJSCkTcEqxRaeTEY3hANBekcjdtVdTT5XSUdkgUvzKjFwR5pP64MCpHLETtMpPttgDkDkTmfiz94xR6p64HY8EQCn4s1jAYsJq7mtcbcvNoh5jCikp7QzdRmADG28yVXWA9sBNjYdvWua\"\n },\n {\n \"amount\": 43889736213356858,\n \"address\": \"FHnt4NL7yPXn1Crm3Cb1iScuJnxyNWJzc2X5vHNGXa4t7ByLdcTJQuAJCnJcQMY\"\n },\n {\n \"amount\": 29553201435113214,\n \"address\": \"2657WMsDfac7D2V9Hdo6S2Nb8TW9HWSjEdc6Mym7JCnjxdbmdeZYvn5e4m9wqwUSe\"\n },\n {\n \"amount\": 25197302769215345,\n \"address\": \"3kaqdAD6vGMHCWFbbMhUTtYFk5rCCPoEaNWnJ6VKhEPdaYDNrwB8ZfY6TbeNrCewzEjWNNmvPetc1pM271eZGESJT97YG65ssSK4ksSWFzV1WHoF8qWrDRDr5fmQMx2KqEgQqsERvQ62TPAvLfoE1DPZ2n5fkKr5ZP487hM23PKT7oawzyEhwjComHp4RzPQD2RVgvDjvBPf7xS9XbLHdmFd6AeSTfCgNYm4xynGBsK4pE4asRjqGSCVRbDhUTbmvTgb7YtRjdXL64cFyhKJuZSyk2c9CD699ZPRjatdG4nvHQYVxmVCKEzNzHeRqWri8ASHAVwcm3vHswAnnxt8Ny\"\n }\n ],\n \"direction\": \"incoming\",\n \"outputs\": [\n {\n \"amount\": 41659835238982099,\n \"address\": \"iBULcLXh5E61LkdMY86JPAqJDH3xQuJt9NuNm4T49YibbAUSjhs5iwy536tP6kAiAwycrhxW22RSvU8M62E6tzZ7CffWSwLURDLyoP7dKZnR4pJ8d7k6\"\n }\n ],\n \"confirmations\": 3,\n \"id\": \"d827de094565984c09b06ac4953a2666c6385ed2b88635936d3d78bd28ed93b8\",\n \"type\": \"foreign\"\n },\n {\n \"creationTime\": \"2006-02-15T15:23:33.23388\",\n \"status\": {\n \"tag\": \"inNewestBlocks\",\n \"data\": {}\n },\n \"amount\": 19437341548340972,\n \"inputs\": [\n {\n \"amount\": 39542309808461,\n \"address\": \"D9NMcbfEqZXo2nxJvpykM3ERDsDzs9a4CtcX6WY9L8z2m6oysyEo21gjeywDpEFNUDQo8YEUACvzurMAoCSgQmUMdHn6W8DWSWgxdKyzSS2qNieCbYF17APZF18LpdV2675hbmzUyYSzhvN8ZPLwQyR6Ea9HtD22m1bKWYiQmJsE7rneXwzR3xRhguVRXdNFXiDKgzA2AXXs49KhNyTQERCtsp3jHFCaLKbggKiN8cnqLbFCZH2ynuPZXPoGWCyFxUkiYzjAFFZPYJ9MUpgYU6cMNzKRTWkRYD7HzyYwtXdvr48YMAL4ks7QBTra7XdLPsHQEXBaCnHXrQYZs3FxUjj\"\n }\n ],\n \"direction\": \"incoming\",\n \"outputs\": [\n {\n \"amount\": 15239276628088581,\n \"address\": \"xNk66s8wK4jp5HChUAHxezxo5oCx8PF35xUFVYKVT5ASaZQTBbkBMvtDMcW114A7JczvSq4he1TB2puYrKbwEt3KELPpGUEooi9xuQVELHMQbN61rp64kapyLKkswLLD5FQn1jZpZC86FWnQHxBL5rQJWVdNEeW48qHfStR1BaFPvv8My3TJGNrBfcAsmuJXTCxhVTPjkWxLGYdwdZpijFU5DorLukP8jp2Zi5KAihnb8UfmeR4dgwpoj5UyhdhE5fKjx2wJUGY95MffvFp9y1xj28dyzhCo\"\n },\n {\n \"amount\": 25924683754560431,\n \"address\": \"vbwFz83QgLnxGhhittLB1XqpVD9uzoN4nW26P5D5euYRJw6WpJPNiEQWb8GktGZxwZWVuYJVmtT2qvTQvTcDg9ckqLXuj6p6BdsVLJp5EcLFDPgRaRP3g7GPnZJshPFRaww3UMaFTruqWp6TR6uPjHpuL3KSB2iN5ejRtM4gchkuAyiasJ5abJYAJB2TjRycZ8ZrGey5BofrSu7K7dHMzGxVUverxrHLk4FnAaWrDegK1o9PAGvvGMxJp85varc7ELTF1YgDZRDjg3t3ez6WGFfNcG9RQHYkWiDWVUEdmcZYacxeppuKxeyubRf4CeFiqAcNzGjvnxH4b4yZo8bpYQEW\"\n }\n ],\n \"confirmations\": 0,\n \"id\": \"f5c79aba1f0102dce829e331574141be10d3db93e6b13f8a70d463124dc0bd8f\",\n \"type\": \"foreign\"\n }\n ],\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nIn addition, and because it is not possible to _preview_ a transaction, one can lookup a\ntransaction's fees using the [`POST /api/v1/transactions/fees`](#tag/Transactions%2Fpaths%2F~1api~1v1~1transactions~1fees%2Fpost)\nendpoint to get an estimation of those fees.\nSee [Estimating Transaction Fees](#section/Common-Use-Cases/Estimating-Transaction-Fees) for more details.\n\n\nPagination\n==========\n\n**All GET requests of the API are paginated by default**. Whilst this can be a source of\nsurprise, is the best way of ensuring the performance of GET requests is not affected by the\nsize of the data storage.\n\nVersion `V1` introduced a different way of requesting information to the API. In particular,\nGET requests which returns a _collection_ (i.e. typically a JSON array of resources) lists\nextra parameters which can be used to modify the shape of the response. In particular, those\nare:\n\n* `page`: (Default value: **1**).\n* `per_page`: (Default value: **10**)\n\nFor a more accurate description, see the section `Parameters` of each GET request, but as a\nbrief overview the first two control how many results and which results to access in a\npaginated request.\n\n\nFiltering and Sorting\n=====================\n\n`GET` endpoints which list collection of resources supports filters & sort operations, which\nare clearly marked in the swagger docs with the `FILTER` or `SORT` labels. The query format is\nquite simple, and it goes this way:\n\n\nFilter Operators\n----------------\n\n| Operator | Description | Example |\n|----------|---------------------------------------------------------------------------|------------------------|\n| - | If **no operator** is passed, this is equivalent to `EQ` (see below). | `balance=10` |\n| `EQ` | Retrieves the resources with index _equal_ to the one provided. | `balance=EQ[10]` |\n| `LT` | Retrieves the resources with index _less than_ the one provided. | `balance=LT[10]` |\n| `LTE` | Retrieves the resources with index _less than equal_ the one provided. | `balance=LTE[10]` |\n| `GT` | Retrieves the resources with index _greater than_ the one provided. | `balance=GT[10]` |\n| `GTE` | Retrieves the resources with index _greater than equal_ the one provided. | `balance=GTE[10]` |\n| `RANGE` | Retrieves the resources with index _within the inclusive range_ [k,k]. | `balance=RANGE[10,20]` |\n\nSort Operators\n--------------\n\n| Operator | Description | Example |\n|----------|---------------------------------------------------------------------------|------------------------|\n| `ASC` | Sorts the resources with the given index in _ascending_ order. | `sort_by=ASC[balance]` |\n| `DES` | Sorts the resources with the given index in _descending_ order. | `sort_by=DES[balance]` |\n| - | If **no operator** is passed, this is equivalent to `DES` (see above). | `sort_by=balance` |\n\n\nErrors\n======\n\nIn case a request cannot be served by the API, a non-2xx HTTP response will be issued, together\nwith a [JSend-compliant](https://labs.omniti.com/labs/jsend) JSON Object describing the error\nin detail together with a numeric error code which can be used by API consumers to implement\nproper error handling in their application. For example, here's a typical error which might be\nissued:\n\n``` json\n{\n \"status\": \"error\",\n \"diagnostic\": {},\n \"message\": \"WalletNotFound\"\n}\n```\n\nExisting Wallet Errors\n----------------------\n\nError Name / Description | HTTP Error code | Example\n-------------------------|-----------------|---------\n`NotEnoughMoney`
Not enough available coins to proceed.|403|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"details\": {
            \"msg\": \"Not enough available coins to proceed.\",
            \"availableBalance\": 1400
        }
    },
    \"message\": \"NotEnoughMoney\"
}
\n`OutputIsRedeem`
One of the TX outputs is a redemption address.|403|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"address\": \"Ae2tdPwUPEZ9ekGYaavZoWCYiLvboFMPHC732Ta8Z2NocXVfHQQWMpa9ymk\"
    },
    \"message\": \"OutputIsRedeem\"
}
\n`UnknownError`
Unexpected internal error.|500|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"msg\": \"Unexpected internal error.\"
    },
    \"message\": \"UnknownError\"
}
\n`InvalidAddressFormat`
Provided address format is not valid.|401|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"msg\": \"Provided address format is not valid.\"
    },
    \"message\": \"InvalidAddressFormat\"
}
\n`WalletNotFound`
Reference to an unexisting wallet was given.|404|
{
    \"status\": \"error\",
    \"diagnostic\": {},
    \"message\": \"WalletNotFound\"
}
\n`WalletAlreadyExists`
Can't create or restore a wallet. The wallet already exists.|403|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"walletId\": \"J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg\"
    },
    \"message\": \"WalletAlreadyExists\"
}
\n`AddressNotFound`
Reference to an unexisting address was given.|404|
{
    \"status\": \"error\",
    \"diagnostic\": {},
    \"message\": \"AddressNotFound\"
}
\n`InvalidPublicKey`
Extended public key (for external wallet) is invalid.|400|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"msg\": \"Extended public key (for external wallet) is invalid.\"
    },
    \"message\": \"InvalidPublicKey\"
}
\n`UnsignedTxCreationError`
Unable to create unsigned transaction for an external wallet.|500|
{
    \"status\": \"error\",
    \"diagnostic\": {},
    \"message\": \"UnsignedTxCreationError\"
}
\n`SignedTxSubmitError`
Unable to submit externally-signed transaction.|500|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"msg\": \"Unable to submit externally-signed transaction.\"
    },
    \"message\": \"SignedTxSubmitError\"
}
\n`TooBigTransaction`
Transaction size is greater than 4096 bytes.|400|
{
    \"status\": \"error\",
    \"diagnostic\": {},
    \"message\": \"TooBigTransaction\"
}
\n`TxFailedToStabilize`
We were unable to find a set of inputs to satisfy this transaction.|500|
{
    \"status\": \"error\",
    \"diagnostic\": {},
    \"message\": \"TxFailedToStabilize\"
}
\n`TxRedemptionDepleted`
The redemption address was already used.|400|
{
    \"status\": \"error\",
    \"diagnostic\": {},
    \"message\": \"TxRedemptionDepleted\"
}
\n`TxSafeSignerNotFound`
The safe signer at the specified address was not found.|400|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"address\": \"Ae2tdPwUPEZ9ekGYaavZoWCYiLvboFMPHC732Ta8Z2NocXVfHQQWMpa9ymk\"
    },
    \"message\": \"TxSafeSignerNotFound\"
}
\n`MissingRequiredParams`
Missing required parameters in the request payload.|400|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"params\": [
            [
                \"wallet_id\",
                \"walletId\"
            ]
        ]
    },
    \"message\": \"MissingRequiredParams\"
}
\n`WalletIsNotReadyToProcessPayments`
This wallet is restoring, and it cannot send new transactions until restoration completes.|403|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"stillRestoring\": {
            \"throughput\": {
                \"quantity\": 400,
                \"unit\": \"blocksPerSecond\"
            },
            \"percentage\": {
                \"quantity\": 14,
                \"unit\": \"percent\"
            },
            \"estimatedCompletionTime\": {
                \"quantity\": 3000,
                \"unit\": \"milliseconds\"
            }
        }
    },
    \"message\": \"WalletIsNotReadyToProcessPayments\"
}
\n`NodeIsStillSyncing`
The node is still syncing with the blockchain, and cannot process the request yet.|412|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"stillSyncing\": {
            \"quantity\": 14,
            \"unit\": \"percent\"
        }
    },
    \"message\": \"NodeIsStillSyncing\"
}
\n`CannotCreateAddress`
Cannot create derivation path for new address, for external wallet.|500|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"msg\": \"Cannot create derivation path for new address in external wallet.\"
    },
    \"message\": \"CannotCreateAddress\"
}
\n`RequestThrottled`
You've made too many requests too soon, and this one was throttled.|429|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"microsecondsUntilRetry\": 42
    },
    \"message\": \"RequestThrottled\"
}
\n`JSONValidationFailed`
Couldn't decode a JSON input.|400|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"validationError\": \"Expected String, found Null.\"
    },
    \"message\": \"JSONValidationFailed\"
}
\n`UnsupportedMimeTypePresent`
Expected Content-Type's main MIME-type to be 'application/json'.|415|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"mimeContentTypeError\": \"Expected Content-Type's main MIME-type to be 'application/json'.\"
    },
    \"message\": \"UnsupportedMimeTypePresent\"
}
\n`UtxoNotEnoughFragmented`
Missing 1 utxo(s) to accommodate all outputs of the transaction|403|
{
    \"status\": \"error\",
    \"diagnostic\": {
        \"details\": {
            \"help\": \"Utxo is not enough fragmented to handle the number of outputs of this transaction. Query /api/v1/wallets/{walletId}/statistics/utxos endpoint for more information\",
            \"missingUtxos\": 1
        }
    },
    \"message\": \"UtxoNotEnoughFragmented\"
}
\n\n\nMonetary Denomination & Units\n=============================\n\nCardano's currency is called _ADA_ ( \u20b3 ). _ADA_ has up to **6** decimal places; hence the\nsmallest monetary unit that can be represented in the Cardano's blockhain is: 0.000001\u20b3. This\nis also called a _Lovelace_ (Cardano's currency is named after the mathematician and computer\nscientist [Ada Lovelace](https://en.wikipedia.org/wiki/Ada_Lovelace)). Put in another way, one\n_ADA_ is equal to one million _Lovelace_.\n\nADA | Lovelace\n-----------|----------\n`1` | `1 000 000`\n`.000 001` | `1`\n\n> **Warning**: All amounts manipulated in the API are given and expected in Lovelace.\n\n\nMnemonic Codes\n==============\n\nThe full list of accepted mnemonic codes to secure a wallet is defined by the [BIP-39\nspecifications](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki). Note that\npicking up 12 random words from the list **is not enough** and leads to poor security. Make\nsure to carefully follow the steps described in the protocol when you generate words for a new\nwallet.\n\n\nVersioning & Legacy\n===================\n\nThe API is **versioned**, meaning that is possible to access different versions of the API by adding the _version number_ in the URL.\n\n**For the sake of backward compatibility, we expose the legacy version of the API, available simply as unversioned endpoints.**\n\nThis means that _omitting_ the version number would call the old version of the API. Deprecated\nendpoints are currently grouped under an appropriate section; they would be removed in upcoming\nreleased, if you're starting a new integration with Cardano-SL, please ignore these.\n\nNote that Compatibility between major versions is not _guaranteed_, i.e. the request & response formats might differ.\n\n\nDisable TLS (Not Recommended)\n-----------------------------\n\nIf needed, you can disable TLS by providing the `--no-tls` flag to the wallet or by running a wallet in debug mode with `--wallet-debug` turned on.\n\n\nCommon Use-Cases\n================\n\nSending Money to Multiple Recipients\n------------------------------------\n\nAs seen in [Sending ADA](#section/Getting-Started/Sending-ADA), you can send _ADA_ to\nanother party using the [`POST /api/v1/transactions`](#tag/Transactions%2Fpaths%2F~1api~1v1~1transactions%2Fpost) endpoint.\nImportant to notice is the type of the field `destinations`: it's a list, enabling you to provide more\nthan one destination. Each destination is composed of:\n\n- An address\n- A corresponding amount\n\nThe overall transaction corresponds to the sum of each outputs. For instance, to send money to\ntwo parties simultaneously:\n\n```\ncurl -X POST https://localhost:8090/api/v1/transactions \\\n -H \"Accept: application/json; charset=utf-8\" \\\n -H \"Content-Type: application/json; charset=utf-8\" \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem \\\n -d '{\n \"destinations\": [\n {\n \"amount\": 14,\n \"address\": \"A7k5bz1QR2...Tx561NNmfF\"\n },\n {\n \"amount\": 42,\n \"address\": \"B56n78WKE8...jXAa34NUFz\"\n }\n ],\n \"source\": {\n \"accountIndex\": 0,\n \"walletId\": \"Ae2tdPwUPE...8V3AVTnqGZ\"\n },\n \"spendingPassword\": \"5416b2988745725998907addf4613c9b0764f04959030e1b81c603b920a115d0\"\n}'\n```\n\n\nAbout UTXO Fragmentation\n------------------------\n\nAs described in [Sending Money to Multiple Recipients](#section/Common-Use-Cases/Sending-Money-to-Multiple-Recipients), it is possible to send ada to more than one destination. Cardano only allows a given UTXO to cover at most one single transaction output. As a result,\nwhen the number of transaction outputs is greater than the number the API returns a `UtxoNotEnoughFragmented` error which\nlooks like the following\n```\n{\n \"status\": \"error\",\n \"diagnostic\": {\n \"details\": {\n \"help\": \"Utxo is not enough fragmented to handle the number of outputs of this transaction. Query /api/v1/wallets/{walletId}/statistics/utxos endpoint for more information\",\n \"missingUtxos\": 1\n }\n },\n \"message\": \"UtxoNotEnoughFragmented\"\n}\n```\n\nTo make sure the source account has a sufficient level of UTXO fragmentation (i.e. number of UTXOs),\nplease monitor the state of the UTXOs as described in [Getting UTXO Statistics](#section/Common-Use-Cases/Getting-Utxo-Statistics). The\nnumber of wallet UTXOs should be no less than the transaction outputs, and the sum of all UTXOs should be enough to cover the total\ntransaction amount, including fees.\n\nContrary to a classic accounting model, there's no such thing as spending _part of a UTXO_, and one has to wait for a transaction to be included in a\nblock before spending the remaining change. This is very similar to using bank notes: one can't spend a USD 20 bill at two different shops at the same time,\neven if it is enough to cover both purchases \u2014 one has to wait for change from the first transaction before making the second one.\nThere's no \"ideal\" level of fragmentation; it depends on one's needs. However, the more UTXOs that are available, the higher the concurrency capacity\nof one's wallet, allowing multiple transactions to be made at the same time.\n\nSimilarly, there's no practical maximum number of UTXOs, but there is nevertheless a maximum transaction size. By having many small UTXOs,\none is taking the risk of hitting that restriction, should too many inputs be selected to fill a transaction. The only way to\nwork around this is to make multiple smaller transactions.\n\nEstimating Transaction Fees\n---------------------------\n\nWhen you submit a transaction to the network, some fees apply depending on, but not only, the\nselected grouping policy and the available inputs on the source wallet. There's actually a\ntrade-off between fees, cryptographic security, throughput and privacy. The more inputs are\nselected, the bigger is the payload, the bigger are the fees.\n\nThe API lets you estimate fees for a given transaction via the [`POST /api/v1/transaction/fees`](#tag/Transactions%2Fpaths%2F~1api~1v1~1transactions~1fees%2Fpost)\nendpoint. The request payload is identical to the one you would make to create a transaction:\n\n```\ncurl -X POST https://localhost:8090/api/v1/transactions/fees \\\n -H \"Accept: application/json; charset=utf-8\" \\\n -H \"Content-Type: application/json; charset=utf-8\" \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem \\\n -d '{\n \"destinations\": [{\n \"amount\": 14,\n \"address\": \"A7k5bz1QR2...Tx561NNmfF\"\n }],\n \"source\": {\n \"accountIndex\": 0,\n \"walletId\": \"Ae2tdPwUPE...8V3AVTnqGZ\"\n }\n}'\n```\n\nThe API resolves with an estimated amount in _ADA_. This estimation highly depends on the\ncurrent state of the ledger and diverges with time.\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"estimatedAmount\": 25132995790248024\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\n\nManaging Accounts\n-----------------\n\nA wallet isn't limited to one account. It can actually be useful to have more than one account\nin order to separate business activities. With the API, you can retrieve a specific account,\ncreate new ones, list all existing accounts of a wallet or edit a few things on an existing\naccount. By default, your wallet comes with a provided account. Let's see how to create a fresh\nnew account on a wallet using [`POST /api/v1/wallets/{{walletId}}/accounts`](#tag/Accounts%2Fpaths%2F~1api~1v1~1wallets~1{walletId}~1accounts%2Fpost):\n\n```\ncurl -X POST \\\n https://localhost:8090/api/v1/Ae2tdPwUPE...8V3AVTnqGZ/accounts \\\n -H 'Content-Type: application/json;charset=utf-8' \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem \\\n -d '{\n \"name\": \"MyOtherAccount\",\n \"spendingPassword\": \"5416b2988745725998907addf4613c9b0764f04959030e1b81c603b920a115d0\"\n}'\n```\n\nNote that the `spendingPassword` here should match the one provided earlier in [Creating a\nNew Wallet](#section/Getting-Started/Creating-a-New-Wallet).\n\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"amount\": 7328081618979461,\n \"addresses\": [\n {\n \"used\": true,\n \"changeAddress\": false,\n \"id\": \"NBimUZYpm3GRnk2bwqBdHAwSfyrLYUYKfDfDpBh4fCnkPLQz4YJD6BdN48McgEg9KGG\",\n \"ownership\": \"isOurs\"\n },\n {\n \"used\": true,\n \"changeAddress\": true,\n \"id\": \"Un4ZpTvXtoKmAvjR1LrKS6AibEsMBoGNTjpUCLUjohhLKMVCo8mHWV2QgLhAtDo4AWogK4z8PQheHmWGY17dTXEG6b1kENLdBfLPaPktpYrLZ219\",\n \"ownership\": \"ambiguousOwnership\"\n }\n ],\n \"name\": \"My account\",\n \"walletId\": \"J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg\",\n \"index\": 3660662023\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nYou can always retrieve this account description later if needed via [`GET /api/v1/wallets/{{walletId}}/accounts/{{accountId}}`](#tag/Accounts%2Fpaths%2F~1api~1v1~1wallets~1{walletId}~1accounts~1{accountId}%2Fget).\n\nFor example:\n\n```\ncurl -X GET \\\n https://127.0.0.1:8090/api/v1/wallets/Ae2tdPwUPE...8V3AVTnqGZ/accounts/2902829384 \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\nFor a broader view, the full list of accounts of a given wallet can be retrieved using [`GET /api/v1/wallets/{{walletId}}/accounts`](#tag/Accounts%2Fpaths%2F~1api~1v1~1wallets~1{walletId}~1accounts%2Fget)\n```\ncurl -X GET \\\n https://127.0.0.1:8090/api/v1/wallets/Ae2tdPwUPE...8V3AVTnqGZ/accounts \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\n```json\n{\n \"status\": \"success\",\n \"data\": [\n {\n \"amount\": 29208924123228353,\n \"addresses\": [\n {\n \"used\": true,\n \"changeAddress\": true,\n \"id\": \"7J1MaQmKydNZFkSLuQ57KHDyEe5hDaVaoHfxqraW9MEEPSzVwgFCGHcRNicc8HfTQrQRD2Fe5M6ayQE2UeVQp91RxS9NvRm6Dme2MEDjK6TNTGx\",\n \"ownership\": \"ambiguousOwnership\"\n }\n ],\n \"name\": \"My account\",\n \"walletId\": \"J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg\",\n \"index\": 2379541633\n },\n {\n \"amount\": 33750393777694218,\n \"addresses\": [\n {\n \"used\": false,\n \"changeAddress\": true,\n \"id\": \"2657WMsDfac79WyvE2tqb1bGGWnU9euc7NA51qv6etiHjXxQ2YX4oAub6pj8TdVnH\",\n \"ownership\": \"ambiguousOwnership\"\n },\n {\n \"used\": true,\n \"changeAddress\": true,\n \"id\": \"7TLVhuQreVUZZh5qABV7Z8LRpZvvjHrsYEa3wQTPbLZnGmFfnkCrVbF155EV9DdnzGgDhfGYRXXUKr8zfdbadon1BqVq2vziwTD3uLHb3694MLx1y6YxFfUNLknZuhNGFAYQN6eAxiCW34YyUnoFgzA4ytHTfs7zgUoL2Wk5iLNUHCqvLbmNxuKG9x4E245HVHvQ3NFjXgmDzahvebP2p77bt9yokHbSxACGSAzDcytKtv\",\n \"ownership\": \"ambiguousOwnership\"\n },\n {\n \"used\": true,\n \"changeAddress\": false,\n \"id\": \"2Wcg6zEnC1VpLnrJKB7bnEgzzFNMzto9pgyM4LpKRB4wGKiKLXddRdhiJEtb84Wp9ph1zJ2PjrRzP36SaoXKTF4bos9UKpuvzyz5DWCadFZtYDWYNvYMY8iTEHKtkqazSv8cBvEmSyAmsSWzG5G3DByVBAFQ3v8j5Ke7uvBR7rXYzD7stR3Ty\",\n \"ownership\": \"ambiguousOwnership\"\n }\n ],\n \"name\": \"My account\",\n \"walletId\": \"J7rQqaLLHBFPrgJXwpktaMB1B1kQBXAyc2uRSfRPzNVGiv6TdxBzkPNBUWysZZZdhFG9gRy3sQFfX5wfpLbi4XTFGFxTg\",\n \"index\": 4165966019\n }\n ],\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nPartial Representations\n-----------------------\n\nThe previous endpoint gives you a list of full representations. However, in some cases, it might be interesting to retrieve only a partial representation of an account (e.g. only the balance). There are two extra endpoints one could use to either fetch a given account's balance, and another to retrieve the list of addresses associated to a specific account.\n\n[`GET /api/v1/wallets/{{walletId}}/accounts/{{accountId}}/addresses`](#tag/Accounts%2Fpaths%2F~1api~1v1~1wallets~1%7BwalletId%7D~1accounts~1%7BaccountId%7D~1addresses%2Fget)\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"addresses\": [\n {\n \"used\": false,\n \"changeAddress\": true,\n \"id\": \"87iPzcvCgPhtmxALENcfXbYWRYSivUXJi5otTSN5QaLUichFdfZ7sYATc3t3B4trsg7Dnu\",\n \"ownership\": \"ambiguousOwnership\"\n },\n {\n \"used\": false,\n \"changeAddress\": true,\n \"id\": \"NBimUZYpm3G6aqEmXZ2gLgkYNasWQTpwo667eRwsT31n3YkpWsBR8zQYq2L6q3nEBpF\",\n \"ownership\": \"isOurs\"\n }\n ]\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nNote that this endpoint is paginated and allow basic filtering and sorting on\naddresses. Similarly, you can retrieve only the account balance with:\n\n[`GET /api/v1/wallets/{{walletId}}/accounts/{{accountId}}/amount`](#tag/Accounts%2Fpaths%2F~1api~1v1~1wallets~1%7BwalletId%7D~1accounts~1%7BaccountId%7D~1amount%2Fget)\n\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"amount\": 25132995790248024\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\n\nManaging Addresses\n------------------\n\nBy default, wallets you create are provided with an account which has one default address. It\nis possible (and recommended) for an account to manage multiple addresses. Address reuse\nactually reduces privacy for it tights more transactions to a small set of addresses.\n\nWhen paying, the wallet makes many of these choices for you. Addresses are\nselected from a wallet's account based on several different strategies and\npolicies.\n\nTo create a new address, use the [`POST /api/v1/addresses`](#tag/Addresses%2Fpaths%2F~1api~1v1~1addresses%2Fpost)\nendpoint:\n\n```\ncurl -X POST \\\n https://localhost:8090/api/v1/addresses \\\n -H 'Content-Type: application/json;charset=utf-8' \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem \\\n -d '{\n \"walletId\": \"Ae2tdPwUPE...V3AVTnqGZ4\",\n \"accountIndex\": 2147483648\n}'\n```\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"used\": false,\n \"changeAddress\": true,\n \"id\": \"AL91N9VXRTCuf4LDUdNV79GJyYrLqPPnAFwjY6QhySZJrTKibvwfuMM2iEbbBZuNCRqX661ZQayk7T4DnZqQHMjtYdPKQx5Fps8qfsnRnLBsz4bJirv\",\n \"ownership\": \"ambiguousOwnership\"\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nIf your wallet is protected with a password, this password is also required in order to create\nnew addresses for that wallet. In such case, the field `spendingPassword` should match the one\ndefined earlier to protect your wallet.\n\nAddresses generated as just described are always valid. When the API encounters\nan invalid address however (e.g. when provided by another party), it will fail with a\nclient error.\n\nYou can always view all your available addresses across all your wallets by using\n[`GET /api/v1/addresses`](#tag/Addresses%2Fpaths%2F~1api~1v1~1addresses%2Fget):\n\n```\ncurl -X GET https://localhost:8090/api/v1/addresses \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\n```json\n{\n \"status\": \"success\",\n \"data\": [\n \"EqGAuA8vHnNt34cxm9qU4fztVqQAN7NWsQaHBHiB69kv78cHAZQ3rqdtzxRwKAhcGqEr9fDBubnWwSahLZNhQk9yrE9ZyjmVKoJGd7Jfsm9y19n7ZwC7z6v\",\n \"FHnt4NL7yPXigpFJe6ShRAr7hLw7EGtue1NCbsf2EQfNMe1foFAdANNvMS3TR7S\"\n ],\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\nChecking Synchronization Progress\n---------------------------------\n\nYou can control the synchronization progress of the underlying node hosting the wallet's server\nvia [`GET /api/v1/node-info`](#tag/Info%2Fpaths%2F~1api~1v1~1node-info%2Fget). The output is\nrather verbose and gives real-time progress updates about the current node.\n\n```\ncurl -X GET https://localhost:8090/api/v1/node-info \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"blockchainHeight\": {\n \"quantity\": 1.2822931622135091772e19,\n \"unit\": \"blocks\"\n },\n \"localTimeInformation\": {\n \"status\": \"available\",\n \"localTimeDifference\": {\n \"quantity\": 1,\n \"unit\": \"microseconds\"\n }\n },\n \"subscriptionStatus\": {\n \"112.2.62.140:2056:9\": \"subscribed\",\n \"213.202.149.125:4134:3\": \"subscribed\"\n },\n \"syncProgress\": {\n \"quantity\": 14,\n \"unit\": \"percent\"\n },\n \"localBlockchainHeight\": {\n \"quantity\": 9631745999145585284,\n \"unit\": \"blocks\"\n }\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\n\n\nRetrieving Transaction History\n------------------------------\n\nIf needed, applications may regularly poll the wallet's backend to retrieve the history of\ntransactions of a given wallet. Using the [`GET /api/v1/transactions`](#tag/Transactions%2Fpaths%2F~1api~1v1~1transactions%2Fget)\nendpoint, you can view the status of all transactions that ever sent or took money from the\nwallet.\n\nThe following table sums up the available filters (also detailed in the endpoint documentation details):\n\nFilter On | Corresponding Query Parameter(s)\n----------------------------| ------------------------------\nWallet | `wallet_id`\nWallet's account | `account_index` + `wallet_id`\nAddress | `address`\nTransaction's creation time | `created_at`\nTransaction's id | `id`\n\nFor example, in order to retrieve the last 50 transactions of a particular account,\nordered by descending date:\n\n```\ncurl -X GET https://127.0.0.1:8090/api/v1/transactions?wallet_id=Ae2tdPwU...3AVTnqGZ&account_index=2902829384&sort_by=DES\\[created_at\\]&per_page=50' \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\nFor example, in order to retrieve the last 50 transactions, ordered by descending date:\n\n```\ncurl -X GET 'https://127.0.0.1:8090/api/v1/transactions?wallet_id=Ae2tdPwU...3AVTnqGZ &sort_by=DES\\[created_at\\]&per_page=50' \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\n\nAnother example, if you were to look for all transactions made since the 1st of January 2018:\n\n```\ncurl -X GET 'https://127.0.0.1:8090/api/v1/transactions?wallet_id=Ae2tdPwU...3AVTnqGZ&created_at=GT\\[2018-01-01T00:00:00.00000\\]' \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\n\nGetting Utxo statistics\n---------------------------------\n\nYou can get Utxo statistics of a given wallet using\n [`GET /api/v1/wallets/{{walletId}}/statistics/utxos`](#tag/Accounts%2Fpaths%2F~1api~1v1~1wallets~1{walletId}~1statistics~1utxos%2Fget)\n\n```\ncurl -X GET \\\n https://127.0.0.1:8090/api/v1/wallets/Ae2tdPwUPE...8V3AVTnqGZ/statistics/utxos \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem\n```\n\n```json\n{\n \"status\": \"success\",\n \"data\": {\n \"boundType\": \"Log10\",\n \"allStakes\": 3792248171670440,\n \"histogram\": {\n \"10000000000000000\": 0,\n \"100000000000000\": 2,\n \"1000000000000\": 3,\n \"10000000000\": 0,\n \"100000000\": 0,\n \"1000000\": 2,\n \"10000\": 4,\n \"100\": 4,\n \"1000000000\": 1,\n \"100000000000\": 0,\n \"10\": 2,\n \"45000000000000000\": 0,\n \"1000\": 0,\n \"10000000000000\": 1,\n \"1000000000000000\": 4,\n \"100000\": 4,\n \"10000000\": 2\n }\n },\n \"meta\": {\n \"pagination\": {\n \"page\": 3,\n \"perPage\": 18,\n \"totalPages\": 1,\n \"totalEntries\": 2\n }\n }\n}\n```\nMake sure to carefully read the section about [Pagination](#section/Pagination) to fully\nleverage the API capabilities.\n\n\nImporting (Unused) Addresses From a Previous Node (or Version)\n--------------------------------------------------------------\n\nWhen restoring a wallet, only the information available on the blockchain can\nbe retrieved. Some pieces of information aren't stored on\nthe blockchain and are only defined as _Metadata_ of the wallet backend. This\nincludes:\n\n- The wallet's name\n- The wallet's assurance level\n- The wallet's spending password\n- The wallet's unused addresses\n\nUnused addresses are not recorded on the blockchain and, in the case of random\nderivation, it is unlikely that the same addresses will be generated on two\ndifferent node instances. However, some API users may wish to preserve unused\naddresses between different instances of the wallet backend.\n\nTo enable this, the wallet backend provides an endpoint ([`POST /api/v1/wallets/{{walletId}}/addresses`](#tag/Addresses%2Fpaths%2F~1api~1v1~1wallets~1{walletId}~1addresses%2Fpost))\nto import a list of addresses into a given account. Note that this endpoint is\nquite lenient when it comes to errors: it tries to import all provided addresses\none by one, and ignores any that can't be imported for whatever reason. The\nserver will respond with the total number of successes and, if any, a list of\naddresses that failed to be imported. Trying to import an address that is already\npresent will behave as a no-op.\n\nFor example:\n\n```\ncurl -X POST \\\n https://127.0.0.1:8090/api/v1/wallets/Ae2tdPwUPE...8V3AVTnqGZ/addresses \\\n -H 'Accept: application/json;charset=utf-8' \\\n --cacert ./scripts/tls-files/ca.crt \\\n --cert ./scripts/tls-files/client.pem \\\n -d '[\n \"Ae2tdPwUPE...8V3AVTnqGZ\",\n \"Ae2odDwvbA...b6V104CTV8\"\n ]'\n```\n\n> **IMPORTANT**: This feature is experimental and performance is\n> not guaranteed. Users are advised to import small batches only.\n", + "license": { + "name": "MIT", + "url": "https://raw.githubusercontent.com/input-output-hk/cardano-sl/develop/lib/LICENSE" + }, + "title": "Cardano Wallet API", + "version": "1.5.1" + }, + "paths": { + "/api/internal/apply-update": { + "post": { + "description": "Apply the next available update proposal from the blockchain. Note that this\nwill immediately shutdown the node and makes it unavailable for a short while.\n", + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "" + } + }, + "summary": "Apply the next available update", + "tags": [ + "Internal" + ] + } + }, + "/api/internal/import-wallet": { + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WalletImport" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Wallet" + } + }, + "400": { + "description": "Invalid `body`" + } + }, + "summary": "Import a Wallet from disk.", + "tags": [ + "Internal" + ] + } + }, + "/api/internal/next-update": { + "get": { + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-V1 SoftwareVersion" + } + } + }, + "summary": "Version of the next update (404 if none)", + "tags": [ + "Internal" + ] + } + }, + "/api/internal/postpone-update": { + "post": { + "description": "Discard the next available update from the node's local state. Yet, this doesn't\nreject the update which will still be applied as soon as the node is restarted.\n", + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "" + } + }, + "summary": "Discard and postpone the next available update", + "tags": [ + "Internal" + ] + } + }, + "/api/internal/reset-wallet-state": { + "delete": { + "description": "Wipe-out the node's local state entirely. The only intended use-case for this\nendpoint is during API integration testing. Note also that this will fail by\ndefault unless the node is running in debug mode.\n", + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "204": { + "description": "" + } + }, + "summary": "Clear wallet state and all associated secret keys", + "tags": [ + "Internal" + ] + } + }, + "/api/v1/addresses": { + "get": { + "parameters": [ + { + "default": 1, + "description": "The page number to fetch for this request. The minimum is **1**. If nothing is specified, **this value defaults to 1** and always shows the first entries in the requested collection.\n", + "in": "query", + "minimum": 1, + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 10, + "description": "The number of entries to display for each page. The minimum is **1**, whereas the maximum is **50**. If nothing is specified, **this value defaults to 10**.\n", + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "per_page", + "required": false, + "type": "integer" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-_WalletAddress_" + } + }, + "400": { + "description": "Invalid `per_page` or `page`" + } + }, + "summary": "Returns a list of the addresses.", + "tags": [ + "Addresses" + ] + }, + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/NewAddress" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-WalletAddress" + } + }, + "400": { + "description": "Invalid `body`" + } + }, + "summary": "Creates a new Address.", + "tags": [ + "Addresses" + ] + } + }, + "/api/v1/addresses/{address}": { + "get": { + "description": "The previous version of this endpoint failed with an HTTP error when the given\naddress was unknown to the wallet.\n\nThis was misleading since an address that is unknown to the wallet may still\nbelong to the wallet (since it could be part of a pending transaction in\nanother instance of the same wallet).\n\nTo reflect this, the V1 endpoint does not fail when an address is not recognised\nand returns a new field which indicates the address' ownership status, from the\nnode point of view.\n", + "parameters": [ + { + "in": "path", + "name": "address", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-WalletAddress" + } + }, + "404": { + "description": "`address` not found" + } + }, + "summary": "Returns interesting information about an address, if available and valid.", + "tags": [ + "Addresses" + ] + } + }, + "/api/v1/node-info": { + "get": { + "parameters": [ + { + "allowEmptyValue": true, + "default": false, + "description": "In some cases, API Clients need to force a new NTP check as a previous result gets cached. A typical use-case is after asking a user to fix its system clock. If this flag is set, request will block until NTP server responds or it will timout if NTP server is not available within **30** seconds.", + "in": "query", + "name": "force_ntp_check", + "type": "boolean" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-NodeInfo" + } + }, + "400": { + "description": "Invalid `force_ntp_check`" + } + }, + "summary": "Retrieves the dynamic information for this node.", + "tags": [ + "Info" + ] + } + }, + "/api/v1/node-settings": { + "get": { + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-NodeSettings" + } + } + }, + "summary": "Retrieves the static settings for this node.", + "tags": [ + "Settings" + ] + } + }, + "/api/v1/transactions": { + "get": { + "parameters": [ + { + "in": "query", + "name": "wallet_id", + "required": false, + "type": "string" + }, + { + "in": "query", + "maximum": 4294967295, + "minimum": 2147483648, + "name": "account_index", + "required": false, + "type": "number" + }, + { + "in": "query", + "name": "address", + "required": false, + "type": "string" + }, + { + "default": 1, + "description": "The page number to fetch for this request. The minimum is **1**. If nothing is specified, **this value defaults to 1** and always shows the first entries in the requested collection.\n", + "in": "query", + "minimum": 1, + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 10, + "description": "The number of entries to display for each page. The minimum is **1**, whereas the maximum is **50**. If nothing is specified, **this value defaults to 10**.\n", + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "per_page", + "required": false, + "type": "integer" + }, + { + "description": "A **FILTER** operation on a Transaction. Filters support a variety of queries on the resource. These are: \n\n- `EQ[value]` : only allow values equal to `value`\n- `LT[value]` : allow resource with attribute less than the `value`\n- `GT[value]` : allow objects with an attribute greater than the `value`\n- `GTE[value]` : allow objects with an attribute at least the `value`\n- `LTE[value]` : allow objects with an attribute at most the `value`\n- `RANGE[lo,hi]` : allow objects with the attribute in the range between `lo` and `hi`\n- `IN[a,b,c,d]` : allow objects with the attribute belonging to one provided.\n\n", + "in": "query", + "name": "id", + "type": "string" + }, + { + "description": "A **FILTER** operation on a Transaction. Filters support a variety of queries on the resource. These are: \n\n- `EQ[value]` : only allow values equal to `value`\n- `LT[value]` : allow resource with attribute less than the `value`\n- `GT[value]` : allow objects with an attribute greater than the `value`\n- `GTE[value]` : allow objects with an attribute at least the `value`\n- `LTE[value]` : allow objects with an attribute at most the `value`\n- `RANGE[lo,hi]` : allow objects with the attribute in the range between `lo` and `hi`\n- `IN[a,b,c,d]` : allow objects with the attribute belonging to one provided.\n\n", + "in": "query", + "name": "created_at", + "type": "string" + }, + { + "allowEmptyValue": true, + "description": "A **SORT** operation on this Transaction. Allowed keys: `created_at`.\n", + "in": "query", + "name": "sort_by", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-_Transaction_" + } + }, + "400": { + "description": "Invalid `per_page` or `page` or `address` or `account_index` or `wallet_id`" + } + }, + "summary": "Returns the transaction history, i.e the list of all the past transactions.", + "tags": [ + "Transactions" + ] + }, + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Payment" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Transaction" + } + }, + "400": { + "description": "Invalid `body`" + } + }, + "summary": "Generates a new transaction from the source to one or multiple target addresses.", + "tags": [ + "Transactions" + ] + } + }, + "/api/v1/transactions/certificates": { + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Redemption" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Transaction" + } + }, + "400": { + "description": "Invalid `body`" + } + }, + "summary": "Redeem a certificate", + "tags": [ + "Transactions" + ] + } + }, + "/api/v1/transactions/fees": { + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "description": "Estimate the fees which would incur from the input payment. This endpoint\n**does not** require a _spending password_ to be supplied as it generates\nunder the hood an unsigned transaction.\n", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Payment" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-EstimatedFees" + } + }, + "400": { + "description": "Invalid `body`" + } + }, + "summary": "Estimate the fees which would originate from the payment.", + "tags": [ + "Transactions" + ] + } + }, + "/api/v1/wallets": { + "get": { + "parameters": [ + { + "default": 1, + "description": "The page number to fetch for this request. The minimum is **1**. If nothing is specified, **this value defaults to 1** and always shows the first entries in the requested collection.\n", + "in": "query", + "minimum": 1, + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 10, + "description": "The number of entries to display for each page. The minimum is **1**, whereas the maximum is **50**. If nothing is specified, **this value defaults to 10**.\n", + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "per_page", + "required": false, + "type": "integer" + }, + { + "description": "A **FILTER** operation on a Wallet. Filters support a variety of queries on the resource. These are: \n\n- `EQ[value]` : only allow values equal to `value`\n- `LT[value]` : allow resource with attribute less than the `value`\n- `GT[value]` : allow objects with an attribute greater than the `value`\n- `GTE[value]` : allow objects with an attribute at least the `value`\n- `LTE[value]` : allow objects with an attribute at most the `value`\n- `RANGE[lo,hi]` : allow objects with the attribute in the range between `lo` and `hi`\n- `IN[a,b,c,d]` : allow objects with the attribute belonging to one provided.\n\n", + "in": "query", + "name": "id", + "type": "string" + }, + { + "description": "A **FILTER** operation on a Wallet. Filters support a variety of queries on the resource. These are: \n\n- `EQ[value]` : only allow values equal to `value`\n- `LT[value]` : allow resource with attribute less than the `value`\n- `GT[value]` : allow objects with an attribute greater than the `value`\n- `GTE[value]` : allow objects with an attribute at least the `value`\n- `LTE[value]` : allow objects with an attribute at most the `value`\n- `RANGE[lo,hi]` : allow objects with the attribute in the range between `lo` and `hi`\n- `IN[a,b,c,d]` : allow objects with the attribute belonging to one provided.\n\n", + "in": "query", + "name": "balance", + "type": "string" + }, + { + "allowEmptyValue": true, + "description": "A **SORT** operation on this Wallet. Allowed keys: `balance,created_at`.\n", + "in": "query", + "name": "sort_by", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-_Wallet_" + } + }, + "400": { + "description": "Invalid `per_page` or `page`" + } + }, + "summary": "Returns a list of the available wallets.", + "tags": [ + "Wallets" + ] + }, + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/NewWallet" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "201": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Wallet" + } + }, + "400": { + "description": "Invalid `body`" + } + }, + "summary": "Creates a new or restores an existing Wallet.", + "tags": [ + "Wallets" + ] + } + }, + "/api/v1/wallets/{walletId}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Deletes the given Wallet and all its accounts.", + "tags": [ + "Wallets" + ] + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Wallet" + } + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Returns the Wallet identified by the given walletId.", + "tags": [ + "Wallets" + ] + }, + "put": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WalletUpdate" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Wallet" + } + }, + "400": { + "description": "Invalid `body`" + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Update the Wallet identified by the given walletId.", + "tags": [ + "Wallets" + ] + } + }, + "/api/v1/wallets/{walletId}/accounts": { + "get": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "default": 1, + "description": "The page number to fetch for this request. The minimum is **1**. If nothing is specified, **this value defaults to 1** and always shows the first entries in the requested collection.\n", + "in": "query", + "minimum": 1, + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 10, + "description": "The number of entries to display for each page. The minimum is **1**, whereas the maximum is **50**. If nothing is specified, **this value defaults to 10**.\n", + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "per_page", + "required": false, + "type": "integer" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-_Account_" + } + }, + "400": { + "description": "Invalid `per_page` or `page`" + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Retrieves the full list of Accounts.", + "tags": [ + "Accounts" + ] + }, + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/NewAccount" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Account" + } + }, + "400": { + "description": "Invalid `body`" + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Creates a new Account for the given Wallet.", + "tags": [ + "Accounts" + ] + } + }, + "/api/v1/wallets/{walletId}/accounts/{accountId}": { + "delete": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "path", + "maximum": 4294967295, + "minimum": 2147483648, + "name": "accountId", + "required": true, + "type": "number" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "204": { + "description": "" + }, + "404": { + "description": "`walletId` or `accountId` not found" + } + }, + "summary": "Deletes an Account.", + "tags": [ + "Accounts" + ] + }, + "get": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "path", + "maximum": 4294967295, + "minimum": 2147483648, + "name": "accountId", + "required": true, + "type": "number" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Account" + } + }, + "404": { + "description": "`walletId` or `accountId` not found" + } + }, + "summary": "Retrieves a specific Account.", + "tags": [ + "Accounts" + ] + }, + "put": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "path", + "maximum": 4294967295, + "minimum": 2147483648, + "name": "accountId", + "required": true, + "type": "number" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AccountUpdate" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Account" + } + }, + "400": { + "description": "Invalid `body`" + }, + "404": { + "description": "`walletId` or `accountId` not found" + } + }, + "summary": "Update an Account for the given Wallet.", + "tags": [ + "Accounts" + ] + } + }, + "/api/v1/wallets/{walletId}/accounts/{accountId}/addresses": { + "get": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "path", + "maximum": 4294967295, + "minimum": 2147483648, + "name": "accountId", + "required": true, + "type": "number" + }, + { + "default": 1, + "description": "The page number to fetch for this request. The minimum is **1**. If nothing is specified, **this value defaults to 1** and always shows the first entries in the requested collection.\n", + "in": "query", + "minimum": 1, + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 10, + "description": "The number of entries to display for each page. The minimum is **1**, whereas the maximum is **50**. If nothing is specified, **this value defaults to 10**.\n", + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "per_page", + "required": false, + "type": "integer" + }, + { + "description": "A **FILTER** operation on a WalletAddress. Filters support a variety of queries on the resource. These are: \n\n- `EQ[value]` : only allow values equal to `value`\n- `LT[value]` : allow resource with attribute less than the `value`\n- `GT[value]` : allow objects with an attribute greater than the `value`\n- `GTE[value]` : allow objects with an attribute at least the `value`\n- `LTE[value]` : allow objects with an attribute at most the `value`\n- `RANGE[lo,hi]` : allow objects with the attribute in the range between `lo` and `hi`\n- `IN[a,b,c,d]` : allow objects with the attribute belonging to one provided.\n\n", + "in": "query", + "name": "address", + "type": "string" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-AccountAddresses" + } + }, + "400": { + "description": "Invalid `per_page` or `page`" + }, + "404": { + "description": "`walletId` or `accountId` not found" + } + }, + "summary": "Retrieve only account's addresses.", + "tags": [ + "Accounts" + ] + } + }, + "/api/v1/wallets/{walletId}/accounts/{accountId}/amount": { + "get": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "path", + "maximum": 4294967295, + "minimum": 2147483648, + "name": "accountId", + "required": true, + "type": "number" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-AccountBalance" + } + }, + "404": { + "description": "`walletId` or `accountId` not found" + } + }, + "summary": "Retrieve only account's balance.", + "tags": [ + "Accounts" + ] + } + }, + "/api/v1/wallets/{walletId}/addresses": { + "post": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "$ref": "#/definitions/Address" + }, + "type": "array" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-BatchImportResult _V1 Address_" + } + }, + "400": { + "description": "Invalid `body`" + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Batch import existing addresses", + "tags": [ + "Addresses" + ] + } + }, + "/api/v1/wallets/{walletId}/password": { + "put": { + "consumes": [ + "application/json;charset=utf-8" + ], + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PasswordUpdate" + } + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-Wallet" + } + }, + "400": { + "description": "Invalid `body`" + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Updates the password for the given Wallet.", + "tags": [ + "Wallets" + ] + } + }, + "/api/v1/wallets/{walletId}/statistics/utxos": { + "get": { + "parameters": [ + { + "in": "path", + "name": "walletId", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json;charset=utf-8" + ], + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/APIResponse-UtxoStatistics" + } + }, + "404": { + "description": "`walletId` not found" + } + }, + "summary": "Returns Utxo statistics for the Wallet identified by the given walletId.", + "tags": [ + "Wallets" + ] + } + } + }, + "swagger": "2.0", + "tags": [ + { + "name": "Accounts" + }, + { + "name": "Addresses" + }, + { + "name": "Info" + }, + { + "description": "This section contains endpoints so-called 'Internal'. They are only expected to be used by advanced users of the API (e.g. Daedalus) with which there's a privileged communication channel. Backward-compatibility or existence of these endpoints between versions is not guaranteed and won't be enforced. Use at your own risks.", + "name": "Internal" + }, + { + "name": "Settings" + }, + { + "name": "Transactions" + }, + { + "name": "Wallets" + } + ] +} diff --git a/_docs/ja/2017-01-04-installation.md b/_docs/ja/2017-01-04-installation.md new file mode 100644 index 000000000..55e2dc8ec --- /dev/null +++ b/_docs/ja/2017-01-04-installation.md @@ -0,0 +1,38 @@ +--- +layout: default +title: Installation +permalink: /installation/ +group: base +children: dsa +language: ja +--- + + +# インストール + + +## サポートプラットフォーム + + +サポートプラットフォームはWindows, macOS 及びLinuxです。メインノードとダイダロスウォレット[Daedalus wallet](https://github.com/input-output-hk/daedalus)を含むインストーラ[installers for Windows and macOS](https://daedaluswallet.io/#download)があります。 + + +Linuxのインストーラは間もなくリリースされます。現在、LinuxでCardano SLを入手するには2つの選択肢があります。 + + +1. ソースコードからのビルド (推奨). [How to Build Cardano SL and Daedalus from +Source Code](https://github.com/input-output-hk/cardano-sl/blob/develop/docs/how-to/build-cardano-sl-and-daedalus-from-source-code.md)マニュアルを参照してください。 +2. Arch Linuxの**非公式**パッケージの使用: + * [cardano-sl](https://aur.archlinux.org/packages/cardano-sl/) + * [daedalus-bridge](https://aur.archlinux.org/packages/daedalus-bridge/) + * [daedalus](https://aur.archlinux.org/packages/daedalus/) + From 82d6f3fbdb86393f3c9b7a4b0f70b450298f397d Mon Sep 17 00:00:00 2001 From: yuki-muramatsu Date: Tue, 9 Apr 2019 03:57:40 +0000 Subject: [PATCH 2/5] deleted original texts --- _docs/ja/2017-01-04-installation.md | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/_docs/ja/2017-01-04-installation.md b/_docs/ja/2017-01-04-installation.md index 55e2dc8ec..c59047599 100644 --- a/_docs/ja/2017-01-04-installation.md +++ b/_docs/ja/2017-01-04-installation.md @@ -1,36 +1,24 @@ --- layout: default -title: Installation +title: インストール permalink: /installation/ group: base children: dsa language: ja --- - # インストール - ## サポートプラットフォーム - サポートプラットフォームはWindows, macOS 及びLinuxです。メインノードとダイダロスウォレット[Daedalus wallet](https://github.com/input-output-hk/daedalus)を含むインストーラ[installers for Windows and macOS](https://daedaluswallet.io/#download)があります。 - Linuxのインストーラは間もなくリリースされます。現在、LinuxでCardano SLを入手するには2つの選択肢があります。 - - -1. ソースコードからのビルド (推奨). [How to Build Cardano SL and Daedalus from Source Code](https://github.com/input-output-hk/cardano-sl/blob/develop/docs/how-to/build-cardano-sl-and-daedalus-from-source-code.md)マニュアルを参照してください。 + 2. Arch Linuxの**非公式**パッケージの使用: * [cardano-sl](https://aur.archlinux.org/packages/cardano-sl/) * [daedalus-bridge](https://aur.archlinux.org/packages/daedalus-bridge/) From 322bef8ea235e267cab4f2927b9de8c3b24310d5 Mon Sep 17 00:00:00 2001 From: yuki-muramatsu Date: Tue, 9 Apr 2019 04:00:32 +0000 Subject: [PATCH 3/5] fix Ja translation --- _docs/ja/2017-01-04-installation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_docs/ja/2017-01-04-installation.md b/_docs/ja/2017-01-04-installation.md index c59047599..add6cb11a 100644 --- a/_docs/ja/2017-01-04-installation.md +++ b/_docs/ja/2017-01-04-installation.md @@ -12,10 +12,10 @@ language: ja ## サポートプラットフォーム [installers for Windows and macOS](https://daedaluswallet.io/#download), -which include a main node and [Daedalus wallet](https://github.com/input-output-hk/daedalus).--> +which include a main node and [Daedalus wallet](https://github.com/input-output-hk/daedalus) サポートプラットフォームはWindows, macOS 及びLinuxです。メインノードとダイダロスウォレット[Daedalus wallet](https://github.com/input-output-hk/daedalus)を含むインストーラ[installers for Windows and macOS](https://daedaluswallet.io/#download)があります。 -get Cardano SL on Linux:--> +get Cardano SL on Linux: Linuxのインストーラは間もなくリリースされます。現在、LinuxでCardano SLを入手するには2つの選択肢があります。 Source Code](https://github.com/input-output-hk/cardano-sl/blob/develop/docs/how-to/build-cardano-sl-and-daedalus-from-source-code.md)マニュアルを参照してください。 From 0b220faf1c66e272a3d83da1552ec4913314aa51 Mon Sep 17 00:00:00 2001 From: yuki-muramatsu Date: Tue, 9 Apr 2019 04:09:04 +0000 Subject: [PATCH 4/5] fix ja translation --- _docs/ja/2017-01-04-installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs/ja/2017-01-04-installation.md b/_docs/ja/2017-01-04-installation.md index add6cb11a..bcb55d42b 100644 --- a/_docs/ja/2017-01-04-installation.md +++ b/_docs/ja/2017-01-04-installation.md @@ -15,8 +15,8 @@ language: ja which include a main node and [Daedalus wallet](https://github.com/input-output-hk/daedalus) サポートプラットフォームはWindows, macOS 及びLinuxです。メインノードとダイダロスウォレット[Daedalus wallet](https://github.com/input-output-hk/daedalus)を含むインストーラ[installers for Windows and macOS](https://daedaluswallet.io/#download)があります。 -get Cardano SL on Linux: Linuxのインストーラは間もなくリリースされます。現在、LinuxでCardano SLを入手するには2つの選択肢があります。 +1. ソースコードからのビルド (推奨). [How to Build Cardano SL and Daedalus from Source Code](https://github.com/input-output-hk/cardano-sl/blob/develop/docs/how-to/build-cardano-sl-and-daedalus-from-source-code.md)マニュアルを参照してください。 2. Arch Linuxの**非公式**パッケージの使用: From 5ad2ccd94c9042e26aa6f422c57a095bff92ba41 Mon Sep 17 00:00:00 2001 From: yuki-muramatsu Date: Tue, 9 Apr 2019 06:28:03 +0000 Subject: [PATCH 5/5] fix ja translation --- _docs/ja/2017-01-04-installation.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/_docs/ja/2017-01-04-installation.md b/_docs/ja/2017-01-04-installation.md index bcb55d42b..935b25715 100644 --- a/_docs/ja/2017-01-04-installation.md +++ b/_docs/ja/2017-01-04-installation.md @@ -11,11 +11,9 @@ language: ja ## サポートプラットフォーム -[installers for Windows and macOS](https://daedaluswallet.io/#download), -which include a main node and [Daedalus wallet](https://github.com/input-output-hk/daedalus) -サポートプラットフォームはWindows, macOS 及びLinuxです。メインノードとダイダロスウォレット[Daedalus wallet](https://github.com/input-output-hk/daedalus)を含むインストーラ[installers for Windows and macOS](https://daedaluswallet.io/#download)があります。 +サポートプラットフォームはWindows, macOS 及びLinuxです。WindowsとmacOSはメインノードと[ダイダロスウォレット](https://github.com/input-output-hk/daedalus)を含む[インストーラ](https://daedaluswallet.io/#download)があります。 -Linuxのインストーラは間もなくリリースされます。現在、LinuxでCardano SLを入手するには2つの選択肢があります。 +Linuxのインストーラは間もなくリリースされます。現在、LinuxでCardano SLを入手するには2つのオプションがあります。 1. ソースコードからのビルド (推奨). [How to Build Cardano SL and Daedalus from Source Code](https://github.com/input-output-hk/cardano-sl/blob/develop/docs/how-to/build-cardano-sl-and-daedalus-from-source-code.md)マニュアルを参照してください。