Update wallet
The request must include the current record hash in data.parent
to prevent conflicts from concurrent updates. If the parent hash
does not match the record's current hash, the request is rejected
with a 422 error.
Broadcasts the wallet-updated signal. Use
effects to subscribe.
Usage Examples
curl -X PUT "http://localhost:3000/v2/wallets/string" \ -H "x-ledger: <YOUR LEDGER HANDLE>" \ -H "Content-Type: application/json" \ -d '{ "luid": "$wlt.-01xK9pStU3eT5xY4", "hash": "e34883a7a8dcad9fdecdce86471bc56a789f1bdf195b839028b5d72c516f8a93", "data": { "handle": "tesla-bank-wallet", "parent": "0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b", "custom": { "name": "Tesla Bank Primary Wallet", "description": "Updated primary wallet for Tesla Bank" } }, "meta": { "proofs": [ { "method": "ed25519-v2", "digest": "8e5364b61bae13a220e1f5b53e9d2ee464182ca3c23e73df735bd0195ab8d3d9", "public": "dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=", "result": "HR/swDr5IerSRkU0buaCnNsZII5uvh7NiqaVsq90FX148RrksmQbrqra/6larbwryu1tjvZB/azLj4XBOyVpCg==", "custom": { "moment": "2025-04-05T14:30:00.200Z" } } ] } }'{
"luid": "$wlt.-01xK9pStU3eT5xY4",
"hash": "e34883a7a8dcad9fdecdce86471bc56a789f1bdf195b839028b5d72c516f8a93",
"data": {
"handle": "tesla-bank-wallet",
"parent": "0c91fa00006ddaf9476992370ba7209b4815f974d57fa1340e7b194afe37863b",
"custom": {
"name": "Tesla Bank Primary Wallet",
"description": "Updated primary wallet for Tesla Bank"
}
},
"meta": {
"status": "created",
"moment": "2025-04-05T14:30:00.220Z",
"owners": [
"dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk="
],
"proofs": [
{
"signer": "tesla-bank-admin",
"method": "ed25519-v2",
"digest": "8e5364b61bae13a220e1f5b53e9d2ee464182ca3c23e73df735bd0195ab8d3d9",
"public": "dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=",
"result": "HR/swDr5IerSRkU0buaCnNsZII5uvh7NiqaVsq90FX148RrksmQbrqra/6larbwryu1tjvZB/azLj4XBOyVpCg==",
"custom": {
"moment": "2025-04-05T14:30:00.200Z"
}
},
{
"signer": "system",
"method": "ed25519-v2",
"digest": "c0d531830508c6c9577df5393f9d639098aa67b8009b55f83bfc4f3c9f1973e6",
"public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
"result": "9dtr5oO2kaT21oDiLevlLTIt6WUHo94GTZLkJLxE5s845+4b4JMfNIp4JmIsmf8rMuCURl1m6tZZGJ0tEXISCg==",
"custom": {
"luid": "$wlt.-01xK9pStU3eT5xY4",
"moment": "2025-04-05T14:30:00.220Z"
}
}
]
}
}{
"hash": "b7eb7ccf5ffc126951e13e29a8dcfdaf95db859715d4edfc2d16f59a79d4cd58",
"data": {
"reason": "auth.unauthorized",
"detail": "Invalid token."
},
"meta": {
"proofs": [
{
"signer": "system",
"method": "ed25519-v2",
"digest": "3acece870c4118bfe4223118e4d2f3cfd5b8947a7093785b66d49aa57fa2890a",
"public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
"result": "gnK63DqqWDY/UXvnZHixDKPKS6tfeGHgdARylnPiJLwQGyYxuD97TYbSg2wrzsf/bDrHwQYZaf8Gu5ryYP0UAA==",
"custom": {
"moment": "2025-04-05T14:30:00.000Z"
}
}
]
}
}{
"hash": "9ec02726b50650add8acfd124c6defeb978a9ac252a5de888f9493ddc701e927",
"data": {
"reason": "auth.forbidden",
"detail": "Request is not authorized"
},
"meta": {
"proofs": [
{
"signer": "system",
"method": "ed25519-v2",
"digest": "4f8cbdc38d73348de0c31805c783c84a0fecc6be736d7e187004ba68cd00e675",
"public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
"result": "P3hRnveehtuobb4AIO56XBmiduvmYJbpdmOHltG/IifBEH7QSWdv/0pqled4SO9x1Ne3oXuWxJy40DzMvx1MBA==",
"custom": {
"moment": "2025-04-05T14:30:00.000Z"
}
}
]
}
}{
"hash": "d6c59a6df7165fa4a75159799ca5f5e26e544cbb8769eced3d35d8021f6f7935",
"data": {
"reason": "record.not-found",
"detail": "Signer not found"
},
"meta": {
"proofs": [
{
"signer": "system",
"method": "ed25519-v2",
"digest": "78cf86f34aefcf9da6ed4167a38aac0a2739f68f7bafb1d3e033c01ed1b6cdf1",
"public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
"result": "9Ledk+/iAAtj+uLjGe2afq4kID7n8UQD6UpRpLBCujxFjxddq0uZ2tnYRTAXmYdHDkbF0uXqtNM9qO3xhEtpAA==",
"custom": {
"moment": "2025-04-05T14:30:00.000Z"
}
}
]
}
}{
"hash": "dc973d46dd35baa27b0ec5a107e2ee3a8cc57116d086dd868dd0f044a8de7d92",
"data": {
"reason": "record.duplicated",
"detail": "Ledger with handle instant-payments already exists."
},
"meta": {
"proofs": [
{
"signer": "system",
"method": "ed25519-v2",
"digest": "3e1317cc165d132f95ec2f6374890063c162d905d86b33270f97416f8441a872",
"public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
"result": "b+0gSDCUzjEKlZQ/c40yqNpZoyQxCFsbV1Ut5/0zM2wM46xmHMBj3qeo3/GDaFD4NgSNm2G8n1f9c9rfvkl3BA==",
"custom": {
"moment": "2025-04-05T14:30:00.000Z"
}
}
]
}
}{
"hash": "1c084e8dcfb9bb84bc8ea96e9e137b149a34b2bbd85f8e60b4263f5aba980476",
"data": {
"custom": {
"errors": [
{
"instancePath": "/handle",
"schemaPath": "#/properties/handle/pattern",
"keyword": "pattern",
"params": {
"pattern": "^[a-zA-Z0-9_\\-+.]+$"
},
"message": "must match pattern \"^[a-zA-Z0-9_\\-+.]+$\""
}
]
},
"reason": "record.schema-invalid",
"detail": "Schema validator error: data.handle must match pattern \"^[a-zA-Z0-9_\\-+.]+$\""
},
"meta": {
"proofs": [
{
"signer": "system",
"method": "ed25519-v2",
"digest": "7a5febb431719b6f43d7e88e79211308e16ac651b71b339276373fdb4e7c3760",
"public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
"result": "2/1zYw4AaIzsIHfOIC6V/CHw6owbjYHt48cwmFOig0ibeT0IbojLmj1RCRi8W00ka0udPa9WsacWDd7ObMY8CA==",
"custom": {
"moment": "2025-04-05T14:30:00.000Z"
}
}
]
}
}{
"hash": "93a5f4d97a42c2df97f827c58ff7768d02568c15aca931e22b81fa3160ba0df3",
"data": {
"reason": "api.unexpected-error",
"detail": "An unexpected error occurred"
},
"meta": {
"proofs": [
{
"signer": "system",
"method": "ed25519-v2",
"digest": "efaf5360143b586917d9636779ad6e08571c5b06909a20dd0f5eba4bf3be7eae",
"public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
"result": "hERh6Aecj59iR+Fb25OQsHJScOi4t8EiffKSfjlMQdjHMccTnfDlgZFdaJzXzUtpSwy/NHq0l+7ydh3HSWCoAg==",
"custom": {
"moment": "2025-04-05T14:30:00.000Z"
}
}
]
}
}Path Parameters
The unique identifier of the wallet record - it is luid or handle (address).
Header Parameters
The unique identifier of ledger in context for multi tenant requests.
Request Body
application/json
Wallet body
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
Get wallet GET
Previous Page
Delete wallet DELETE
The wallet must have zero balances across all symbols before it can be deleted. If the ledger requires wallets to have anchors, any associated anchors must also be removed first. All balance records for the wallet are permanently removed along with the wallet itself. The [change history](/ledger/reference/api/wallet/list-wallet-changes) remains accessible after deletion — use the record's LUID to query it. Previous record versions can be retrieved for auditing. A [POST alternative](/ledger/reference/api/wallet/drop-wallet-post) is available for clients that cannot send request bodies with DELETE requests. Broadcasts the `wallet-dropped` signal. Use [effects](/ledger/reference/api/effect) to subscribe.