{"id":"3a080aa6c4e832cf59496fbda542faa21cc7d7e520c2a38df623ff2a60b8b154","pubkey":"d1678e7ef965374bbea308a1215609a78376dc158277a7d657680f9d5efd5c38","created_at":1731684898,"kind":30817,"tags":[["d","nut-09"],["title","NUT-09: Restore signatures"],["summary","How a wallet asks the mint to reissue blind signatures it once received, so a lost wallet can be restored."],["s","optional"],["t","cashu"],["t","ecash"],["t","nut"],["alt","A specification: NUT-09: Restore signatures"],["client","openspecs-import"],["published_at","1680691542"],["proxy","https://github.com/cashubtc/nuts/blob/a845dfc998abae501fc3419592d53dc995d34b12/09.md","web"],["x","61b94b6a520c0b56f1e5220e7571d719618fb2e1c6ecb735ecc71acffab9be88"]],"content":"# NUT-09: Restore signatures\n\n`optional`\n\n`used in: NUT-13`\n\n---\n\nIn this document, we describe how wallets can recover blind signatures, and with that their corresponding `Proofs`, by requesting from the mint to reissue the blind signatures. This can be used for a backup recovery of a lost wallet (see [NUT-13][13]) or for recovering the response of an interrupted swap request (see [NUT-03][03]).\n\nMints must store the `BlindedMessage` and the corresponding `BlindSignature` in their database every time they issue a `BlindSignature`. Wallets provide the `BlindedMessage` for which they request the `BlindSignature`. Mints only respond with a `BlindSignature`, if they have previously signed the `BlindedMessage`. Each returned `BlindSignature` also contains the `amount` and the keyset `id` (see [NUT-00][00]) which is all the necessary information for a wallet to recover a `Proof`.\n\n**Request** of `Alice`:\n\n```http\nPOST https://mint.host:3338/v1/restore\n```\n\nWith the data being of the form `PostRestoreRequest`:\n\n```json\n{\n  \"outputs\": <Array[BlindedMessages]>\n}\n```\n\n**Response** of `Bob`:\n\nThe mint `Bob` then responds with a `PostRestoreResponse`.\n\n```json\n{\n  \"outputs\": <Array[BlindedMessages]>,\n  \"signatures\": <Array[BlindSignature]>\n}\n```\n\nThe returned arrays `outputs` and `signatures` are of the same length and for every entry `outputs[i]`, there is a corresponding entry `signatures[i]`.\n\n## Mint info setting\n\nThe [NUT-06][06] `MintMethodSetting` indicates support for this feature:\n\n```json\n{\n  \"9\": {\n    \"supported\": true\n  }\n}\n```\n\n[00]: nostr:naddr1qvzqqqrcvypzp5t83el0jefhfwl2xz9py9tqnfurwmwptqnh5lt9w6q0n4006hpcqqrxuat595crqqpd6d9\n[02]: nostr:naddr1qvzqqqrcvypzp5t83el0jefhfwl2xz9py9tqnfurwmwptqnh5lt9w6q0n4006hpcqqrxuat595cry0t0uzl\n[03]: nostr:naddr1qvzqqqrcvypzp5t83el0jefhfwl2xz9py9tqnfurwmwptqnh5lt9w6q0n4006hpcqqrxuat595crxuwwl3j\n[07]: nostr:naddr1qvzqqqrcvypzp5t83el0jefhfwl2xz9py9tqnfurwmwptqnh5lt9w6q0n4006hpcqqrxuat595crwz62n00\n[09]: nostr:naddr1qvzqqqrcvypzp5t83el0jefhfwl2xz9py9tqnfurwmwptqnh5lt9w6q0n4006hpcqqrxuat595crjx9yptm\n[11]: nostr:naddr1qvzqqqrcvypzp5t83el0jefhfwl2xz9py9tqnfurwmwptqnh5lt9w6q0n4006hpcqqrxuat595cnz43282n\n[13]: nostr:naddr1qvzqqqrcvypzp5t83el0jefhfwl2xz9py9tqnfurwmwptqnh5lt9w6q0n4006hpcqqrxuat595cnx6mgp9f\n","sig":"6610b99218f17ffc34c12f3be1b61be46ba7895862cc01775363eb8faad7d692d746e987bf1588ca36ec6e6b03fa82bcae1bdcdb1d7f58295cc3bfd3daf17e94"}