[{"data":1,"prerenderedAt":1036},["ShallowReactive",2],{"navigation":3,"\u002Fguides\u002Fvault":116,"\u002Fguides\u002Fvault-surround":1031},[4,27,61,82,112],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,22],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":19,"path":20,"stem":21},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":23,"path":24,"stem":25},"Development","\u002Fgetting-started\u002Fdevelopment","1.getting-started\u002F4.development",false,{"title":28,"icon":29,"path":30,"stem":31,"children":32,"page":26},"Guides","i-lucide-book-open","\u002Fguides","2.guides",[33,37,41,45,49,53,57],{"title":34,"path":35,"stem":36},"Sessions and store","\u002Fguides\u002Fsessions","2.guides\u002F1.sessions",{"title":38,"path":39,"stem":40},"Vault and procedures","\u002Fguides\u002Fvault","2.guides\u002F2.vault",{"title":42,"path":43,"stem":44},"Password accounts","\u002Fguides\u002Fpasswords","2.guides\u002F3.passwords",{"title":46,"path":47,"stem":48},"Rust backend","\u002Fguides\u002Frust","2.guides\u002F4.rust",{"title":50,"path":51,"stem":52},"Security notes","\u002Fguides\u002Fsecurity","2.guides\u002F5.security",{"title":54,"path":55,"stem":56},"Permissions","\u002Fguides\u002Fpermissions","2.guides\u002F6.permissions",{"title":58,"path":59,"stem":60},"Coming from Stronghold","\u002Fguides\u002Fstronghold","2.guides\u002F7.stronghold",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":26},"API reference","i-lucide-file-code","\u002Freference","3.reference",[67,71,75,79],{"title":68,"path":69,"stem":70},"JavaScript API","\u002Freference\u002Fjavascript-api","3.reference\u002F1.javascript-api",{"title":72,"path":73,"stem":74},"Types","\u002Freference\u002Ftypes","3.reference\u002F2.types",{"title":76,"path":77,"stem":78},"Tauri commands","\u002Freference\u002Fcommands","3.reference\u002F3.commands",{"title":54,"path":80,"stem":81},"\u002Freference\u002Fpermissions","3.reference\u002F4.permissions",{"title":83,"icon":84,"path":85,"stem":86,"children":87,"page":26},"Platforms","i-lucide-monitor-smartphone","\u002Fplatforms","4.platforms",[88,92,96,100,104,108],{"title":89,"path":90,"stem":91},"Overview","\u002Fplatforms\u002Foverview","4.platforms\u002F1.overview",{"title":93,"path":94,"stem":95},"macOS","\u002Fplatforms\u002Fmacos","4.platforms\u002F2.macos",{"title":97,"path":98,"stem":99},"Windows","\u002Fplatforms\u002Fwindows","4.platforms\u002F3.windows",{"title":101,"path":102,"stem":103},"Linux","\u002Fplatforms\u002Flinux","4.platforms\u002F4.linux",{"title":105,"path":106,"stem":107},"Android","\u002Fplatforms\u002Fandroid","4.platforms\u002F5.android",{"title":109,"path":110,"stem":111},"iOS","\u002Fplatforms\u002Fios","4.platforms\u002F6.ios",{"title":113,"path":114,"stem":115},"Changelog","\u002Fchangelog","9.changelog",{"id":117,"title":38,"body":118,"description":1025,"extension":1026,"generated":26,"links":1027,"meta":1028,"navigation":192,"path":39,"seo":1029,"stem":40,"__hash__":1030},"docs\u002F2.guides\u002F2.vault.md",{"type":119,"value":120,"toc":1017},"minimark",[121,136,400,412,417,424,499,515,529,532,539,651,662,667,681,887,891,901,989,996,1000,1013],[122,123,124,125,129,130,135],"p",{},"A vault is a named group of binary records inside a client. Records are written from JavaScript with\n",[126,127,128],"code",{},"insert",", or produced by the ",[131,132,134],"a",{"href":133},"#procedures","procedures",", which keep key material on the Rust side.",[137,138,143],"pre",{"className":139,"code":140,"language":141,"meta":142,"style":142},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { KeyringSession, Location } from \"tauri-plugin-keyring-store-api\";\n\nconst session = await KeyringSession.load(\"\u002Fvault-a\", \"\");\nconst vault = (await session.createClient(\"c1\")).getVault(\"SECRETS\");\n\nawait vault.insert(\"blob.bin\", [0xde, 0xad]);\nawait vault.remove(Location.generic(\"SECRETS\", \"blob.bin\"));\n\nawait session.unload();\n","ts","",[126,144,145,187,194,239,293,298,338,378,383],{"__ignoreMap":142},[146,147,150,154,158,162,165,168,171,174,177,181,184],"span",{"class":148,"line":149},"line",1,[146,151,153],{"class":152},"s7zQu","import",[146,155,157],{"class":156},"sMK4o"," {",[146,159,161],{"class":160},"sTEyZ"," KeyringSession",[146,163,164],{"class":156},",",[146,166,167],{"class":160}," Location",[146,169,170],{"class":156}," }",[146,172,173],{"class":152}," from",[146,175,176],{"class":156}," \"",[146,178,180],{"class":179},"sfazB","tauri-plugin-keyring-store-api",[146,182,183],{"class":156},"\"",[146,185,186],{"class":156},";\n",[146,188,190],{"class":148,"line":189},2,[146,191,193],{"emptyLinePlaceholder":192},true,"\n",[146,195,197,201,204,207,210,212,215,219,222,224,227,229,231,234,237],{"class":148,"line":196},3,[146,198,200],{"class":199},"spNyl","const",[146,202,203],{"class":160}," session ",[146,205,206],{"class":156},"=",[146,208,209],{"class":152}," await",[146,211,161],{"class":160},[146,213,214],{"class":156},".",[146,216,218],{"class":217},"s2Zo4","load",[146,220,221],{"class":160},"(",[146,223,183],{"class":156},[146,225,226],{"class":179},"\u002Fvault-a",[146,228,183],{"class":156},[146,230,164],{"class":156},[146,232,233],{"class":156}," \"\"",[146,235,236],{"class":160},")",[146,238,186],{"class":156},[146,240,242,244,247,249,252,255,258,260,263,265,267,270,272,275,277,280,282,284,287,289,291],{"class":148,"line":241},4,[146,243,200],{"class":199},[146,245,246],{"class":160}," vault ",[146,248,206],{"class":156},[146,250,251],{"class":160}," (",[146,253,254],{"class":152},"await",[146,256,257],{"class":160}," session",[146,259,214],{"class":156},[146,261,262],{"class":217},"createClient",[146,264,221],{"class":160},[146,266,183],{"class":156},[146,268,269],{"class":179},"c1",[146,271,183],{"class":156},[146,273,274],{"class":160},"))",[146,276,214],{"class":156},[146,278,279],{"class":217},"getVault",[146,281,221],{"class":160},[146,283,183],{"class":156},[146,285,286],{"class":179},"SECRETS",[146,288,183],{"class":156},[146,290,236],{"class":160},[146,292,186],{"class":156},[146,294,296],{"class":148,"line":295},5,[146,297,193],{"emptyLinePlaceholder":192},[146,299,301,303,306,308,310,312,314,317,319,321,324,328,330,333,336],{"class":148,"line":300},6,[146,302,254],{"class":152},[146,304,305],{"class":160}," vault",[146,307,214],{"class":156},[146,309,128],{"class":217},[146,311,221],{"class":160},[146,313,183],{"class":156},[146,315,316],{"class":179},"blob.bin",[146,318,183],{"class":156},[146,320,164],{"class":156},[146,322,323],{"class":160}," [",[146,325,327],{"class":326},"sbssI","0xde",[146,329,164],{"class":156},[146,331,332],{"class":326}," 0xad",[146,334,335],{"class":160},"])",[146,337,186],{"class":156},[146,339,341,343,345,347,350,353,355,358,360,362,364,366,368,370,372,374,376],{"class":148,"line":340},7,[146,342,254],{"class":152},[146,344,305],{"class":160},[146,346,214],{"class":156},[146,348,349],{"class":217},"remove",[146,351,352],{"class":160},"(Location",[146,354,214],{"class":156},[146,356,357],{"class":217},"generic",[146,359,221],{"class":160},[146,361,183],{"class":156},[146,363,286],{"class":179},[146,365,183],{"class":156},[146,367,164],{"class":156},[146,369,176],{"class":156},[146,371,316],{"class":179},[146,373,183],{"class":156},[146,375,274],{"class":160},[146,377,186],{"class":156},[146,379,381],{"class":148,"line":380},8,[146,382,193],{"emptyLinePlaceholder":192},[146,384,386,388,390,392,395,398],{"class":148,"line":385},9,[146,387,254],{"class":152},[146,389,257],{"class":160},[146,391,214],{"class":156},[146,393,394],{"class":217},"unload",[146,396,397],{"class":160},"()",[146,399,186],{"class":156},[122,401,402,403,406,407,411],{},"There is no ",[126,404,405],{},"get"," for vault records: like in Stronghold, a vault secret can be written and used by a\nprocedure, but not read back by the webview. Use the ",[131,408,410],{"href":409},"\u002Fguides\u002Fsessions#store","store"," for data the\nfrontend needs to read.",[413,414,416],"h2",{"id":415},"locations","Locations",[122,418,419,420,423],{},"A ",[126,421,422],{},"Location"," names one record in one vault:",[137,425,427],{"className":139,"code":426,"language":141,"meta":142,"style":142},"const named = Location.generic(\"WALLET\", \"seed.bin\");\nconst numbered = Location.counter(\"WALLET\", 0);\n",[126,428,429,466],{"__ignoreMap":142},[146,430,431,433,436,438,440,442,444,446,448,451,453,455,457,460,462,464],{"class":148,"line":149},[146,432,200],{"class":199},[146,434,435],{"class":160}," named ",[146,437,206],{"class":156},[146,439,167],{"class":160},[146,441,214],{"class":156},[146,443,357],{"class":217},[146,445,221],{"class":160},[146,447,183],{"class":156},[146,449,450],{"class":179},"WALLET",[146,452,183],{"class":156},[146,454,164],{"class":156},[146,456,176],{"class":156},[146,458,459],{"class":179},"seed.bin",[146,461,183],{"class":156},[146,463,236],{"class":160},[146,465,186],{"class":156},[146,467,468,470,473,475,477,479,482,484,486,488,490,492,495,497],{"class":148,"line":189},[146,469,200],{"class":199},[146,471,472],{"class":160}," numbered ",[146,474,206],{"class":156},[146,476,167],{"class":160},[146,478,214],{"class":156},[146,480,481],{"class":217},"counter",[146,483,221],{"class":160},[146,485,183],{"class":156},[146,487,450],{"class":179},[146,489,183],{"class":156},[146,491,164],{"class":156},[146,493,494],{"class":326}," 0",[146,496,236],{"class":160},[146,498,186],{"class":156},[122,500,501,502,505,506,509,510,514],{},"A counter is stored under the text of its number: ",[126,503,504],{},"Location.counter(\"WALLET\", 7)"," and\n",[126,507,508],{},"Location.generic(\"WALLET\", \"7\")"," are ",[511,512,513],"strong",{},"the same record",". Do not mix counters and numeric record\nnames in one vault.",[122,516,517,520,521,524,525,528],{},[126,518,519],{},"vault.remove(location)"," deletes the record in the vault named ",[511,522,523],{},"by the location",", not the vault\nthe ",[126,526,527],{},"KeyringVault"," was opened for. Removing a missing record is not an error.",[413,530,531],{"id":134},"Procedures",[122,533,534,535,538],{},"Need the ",[126,536,537],{},"crypto"," Cargo feature (default). Each runs in Rust, reads and writes vault records, and\nreturns only public data.",[540,541,542,561],"table",{},[543,544,545],"thead",{},[546,547,548,552,558],"tr",{},[549,550,551],"th",{},"Method",[549,553,554,555],{},"Writes to ",[126,556,557],{},"output",[549,559,560],{},"Resolves to",[562,563,564,582,598,610,623,636],"tbody",{},[546,565,566,572,579],{},[567,568,569],"td",{},[126,570,571],{},"generateSLIP10Seed(output, sizeBytes?)",[567,573,574,575,578],{},"SLIP10 master key from ",[126,576,577],{},"sizeBytes"," random bytes (16..=64, default 32)",[567,580,581],{},"empty array",[546,583,584,589,595],{},[567,585,586],{},[126,587,588],{},"deriveSLIP10(chain, \"Seed\" | \"Key\", source, output)",[567,590,591,592],{},"child key derived along ",[126,593,594],{},"chain",[567,596,597],{},"32-byte chain code",[546,599,600,605,608],{},[567,601,602],{},[126,603,604],{},"recoverBIP39(mnemonic, output, passphrase?)",[567,606,607],{},"master key of an existing English mnemonic",[567,609,581],{},[546,611,612,617,620],{},[567,613,614],{},[126,615,616],{},"generateBIP39(output, passphrase?)",[567,618,619],{},"master key of a new 24-word mnemonic",[567,621,622],{},"the mnemonic as UTF-8 bytes",[546,624,625,630,633],{},[567,626,627],{},[126,628,629],{},"getEd25519PublicKey(privateKey)",[567,631,632],{},"—",[567,634,635],{},"32-byte public key",[546,637,638,643,645],{},[567,639,640],{},[126,641,642],{},"signEd25519(privateKey, msg)",[567,644,632],{},[567,646,647,648],{},"64-byte signature of the UTF-8 of ",[126,649,650],{},"msg",[122,652,653,654,657,658,661],{},"Keys are stored as SLIP10 extended keys (65 bytes). ",[126,655,656],{},"getEd25519PublicKey"," and ",[126,659,660],{},"signEd25519"," also\naccept a record that holds a raw 32-byte Ed25519 secret key.",[663,664,666],"h3",{"id":665},"derivation","Derivation",[122,668,669,670,672,673,676,677,680],{},"Every segment of ",[126,671,594],{}," is hardened (Ed25519 SLIP10 supports only hardened derivation). With\n",[126,674,675],{},"\"Seed\""," the source record holds seed bytes; with ",[126,678,679],{},"\"Key\""," it holds an extended key written by another\nprocedure.",[137,682,684],{"className":139,"code":683,"language":141,"meta":142,"style":142},"const master = Location.generic(\"PRIMARY\", \"master\");\nawait vault.generateSLIP10Seed(master);\n\nconst account0 = Location.generic(\"PRIMARY\", \"m\u002F44'\u002F0'\u002F0'\");\nawait vault.deriveSLIP10([44, 0, 0], \"Key\", master, account0);\n\nconst publicKey = await vault.getEd25519PublicKey(account0);\nconst signature = await vault.signEd25519(account0, \"message\");\n",[126,685,686,723,739,743,779,828,832,854],{"__ignoreMap":142},[146,687,688,690,693,695,697,699,701,703,705,708,710,712,714,717,719,721],{"class":148,"line":149},[146,689,200],{"class":199},[146,691,692],{"class":160}," master ",[146,694,206],{"class":156},[146,696,167],{"class":160},[146,698,214],{"class":156},[146,700,357],{"class":217},[146,702,221],{"class":160},[146,704,183],{"class":156},[146,706,707],{"class":179},"PRIMARY",[146,709,183],{"class":156},[146,711,164],{"class":156},[146,713,176],{"class":156},[146,715,716],{"class":179},"master",[146,718,183],{"class":156},[146,720,236],{"class":160},[146,722,186],{"class":156},[146,724,725,727,729,731,734,737],{"class":148,"line":189},[146,726,254],{"class":152},[146,728,305],{"class":160},[146,730,214],{"class":156},[146,732,733],{"class":217},"generateSLIP10Seed",[146,735,736],{"class":160},"(master)",[146,738,186],{"class":156},[146,740,741],{"class":148,"line":196},[146,742,193],{"emptyLinePlaceholder":192},[146,744,745,747,750,752,754,756,758,760,762,764,766,768,770,773,775,777],{"class":148,"line":241},[146,746,200],{"class":199},[146,748,749],{"class":160}," account0 ",[146,751,206],{"class":156},[146,753,167],{"class":160},[146,755,214],{"class":156},[146,757,357],{"class":217},[146,759,221],{"class":160},[146,761,183],{"class":156},[146,763,707],{"class":179},[146,765,183],{"class":156},[146,767,164],{"class":156},[146,769,176],{"class":156},[146,771,772],{"class":179},"m\u002F44'\u002F0'\u002F0'",[146,774,183],{"class":156},[146,776,236],{"class":160},[146,778,186],{"class":156},[146,780,781,783,785,787,790,793,796,798,800,802,804,807,809,811,814,816,818,821,823,826],{"class":148,"line":295},[146,782,254],{"class":152},[146,784,305],{"class":160},[146,786,214],{"class":156},[146,788,789],{"class":217},"deriveSLIP10",[146,791,792],{"class":160},"([",[146,794,795],{"class":326},"44",[146,797,164],{"class":156},[146,799,494],{"class":326},[146,801,164],{"class":156},[146,803,494],{"class":326},[146,805,806],{"class":160},"]",[146,808,164],{"class":156},[146,810,176],{"class":156},[146,812,813],{"class":179},"Key",[146,815,183],{"class":156},[146,817,164],{"class":156},[146,819,820],{"class":160}," master",[146,822,164],{"class":156},[146,824,825],{"class":160}," account0)",[146,827,186],{"class":156},[146,829,830],{"class":148,"line":300},[146,831,193],{"emptyLinePlaceholder":192},[146,833,834,836,839,841,843,845,847,849,852],{"class":148,"line":340},[146,835,200],{"class":199},[146,837,838],{"class":160}," publicKey ",[146,840,206],{"class":156},[146,842,209],{"class":152},[146,844,305],{"class":160},[146,846,214],{"class":156},[146,848,656],{"class":217},[146,850,851],{"class":160},"(account0)",[146,853,186],{"class":156},[146,855,856,858,861,863,865,867,869,871,874,876,878,881,883,885],{"class":148,"line":380},[146,857,200],{"class":199},[146,859,860],{"class":160}," signature ",[146,862,206],{"class":156},[146,864,209],{"class":152},[146,866,305],{"class":160},[146,868,214],{"class":156},[146,870,660],{"class":217},[146,872,873],{"class":160},"(account0",[146,875,164],{"class":156},[146,877,176],{"class":156},[146,879,880],{"class":179},"message",[146,882,183],{"class":156},[146,884,236],{"class":160},[146,886,186],{"class":156},[663,888,890],{"id":889},"mnemonics","Mnemonics",[122,892,893,896,897,900],{},[126,894,895],{},"generateBIP39"," returns the 24 words once so the user can write them down. Show them, do not store\nthem in the webview or in logs. To restore, pass the words to ",[126,898,899],{},"recoverBIP39"," with the same passphrase.",[137,902,904],{"className":139,"code":903,"language":141,"meta":142,"style":142},"const words = new TextDecoder().decode(await vault.generateBIP39(master, \"optional passphrase\"));\n\u002F\u002F later, on another device:\nawait vault.recoverBIP39(words, master, \"optional passphrase\");\n",[126,905,906,954,960],{"__ignoreMap":142},[146,907,908,910,913,915,918,921,923,925,928,930,932,934,936,938,941,943,945,948,950,952],{"class":148,"line":149},[146,909,200],{"class":199},[146,911,912],{"class":160}," words ",[146,914,206],{"class":156},[146,916,917],{"class":156}," new",[146,919,920],{"class":217}," TextDecoder",[146,922,397],{"class":160},[146,924,214],{"class":156},[146,926,927],{"class":217},"decode",[146,929,221],{"class":160},[146,931,254],{"class":152},[146,933,305],{"class":160},[146,935,214],{"class":156},[146,937,895],{"class":217},[146,939,940],{"class":160},"(master",[146,942,164],{"class":156},[146,944,176],{"class":156},[146,946,947],{"class":179},"optional passphrase",[146,949,183],{"class":156},[146,951,274],{"class":160},[146,953,186],{"class":156},[146,955,956],{"class":148,"line":189},[146,957,959],{"class":958},"sHwdD","\u002F\u002F later, on another device:\n",[146,961,962,964,966,968,970,973,975,977,979,981,983,985,987],{"class":148,"line":196},[146,963,254],{"class":152},[146,965,305],{"class":160},[146,967,214],{"class":156},[146,969,899],{"class":217},[146,971,972],{"class":160},"(words",[146,974,164],{"class":156},[146,976,820],{"class":160},[146,978,164],{"class":156},[146,980,176],{"class":156},[146,982,947],{"class":179},[146,984,183],{"class":156},[146,986,236],{"class":160},[146,988,186],{"class":156},[122,990,991,992,995],{},"An invalid mnemonic fails with ",[126,993,994],{},"crypto procedure error: BIP39 recover: invalid mnemonic","; the error\nnever names the wrong word.",[663,997,999],{"id":998},"not-supported","Not supported",[122,1001,1002,1005,1006,1009,1010,214],{},[126,1003,1004],{},"PublicKey"," with type ",[126,1007,1008],{},"X25519"," rejects with ",[126,1011,1012],{},"X25519 public key extraction is not implemented",[1014,1015,1016],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":142,"searchDepth":189,"depth":196,"links":1018},[1019,1020],{"id":415,"depth":189,"text":416},{"id":134,"depth":189,"text":531,"children":1021},[1022,1023,1024],{"id":665,"depth":196,"text":666},{"id":889,"depth":196,"text":890},{"id":998,"depth":196,"text":999},"Vault records, locations, and the SLIP10 \u002F BIP39 \u002F Ed25519 procedures that keep private keys in Rust.","md",null,{},{"title":38,"description":1025},"mkScf0G5GaoLgJH_jIcL-ORezJT82hkWs6b2dGLzvCQ",[1032,1034],{"title":34,"path":35,"stem":36,"description":1033,"children":-1},"KeyringSession, clients and the key-value byte store, and how their names map to OS keyring entries.",{"title":42,"path":43,"stem":44,"description":1035,"children":-1},"Read and write UTF-8 secrets by account name in bulk, name accounts, and export or import backups.",1794215488501]