SAVINGS YOUR WALLET KEY CAN'T MOVE ALONE. @@@@@@@@ @@@@@@ @@ @@ @@@@@@@@@@ @@ @@ @@@@@@@@ @@@@@@@@ @@ @@ @@@@@@ @@ @@ @@@@@@@@
@@ ........ @@ .... @@ @@.. @@.. .. @@...... @@@@ @@.. @@ ........ @@ ........ @@.. @@.. @@ .... @@ @@.. @@.. @@...... @@
@@.. @@.. @@.. @@.. @@.. @@.. @@.. @@ @@.. @@.. @@.. @@ @@ .. @@.. @@.. @@.. @@.. @@.. @@..
@@@@@@ @@@@@@@@@@.. @@.. @@.. @@.. @@.. @@@@.. @@.. @@@@ @@@@@@ @@ .. @@.. @@.. @@.. @@.. @@@@@@@@ ..
.... @@ @@...... @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@.. .... @@ @@.. @@.. @@.. @@.. @@.. @@.. @@....
@@.. @@.. @@.. @@ @@ .. @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@
@@@@@@@@ .. @@.. @@.. @@ .. @@@@@@@@@@ @@.. @@.. @@@@@@@@.. @@@@@@@@ .. @@.. @@@@@@ .. @@@@@@ .. @@.. @@
........ .. .. .. .......... .. .. ........ ........ .. ...... ...... .. ..
@@ @@ @@@@@@ @@ @@ @@@@@@@@@@ @@@@@@@@@@ @@ @@ @@@@@@@@@@ @@ @@
@@.. @@.. @@ .... @@ @@.. @@.. @@.......... .. @@...... @@.. @@ .. @@.......... @@.. @@..
@@.. @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@ .. @@.. @@ @@ ..
@@.. @@ @@.. @@@@@@@@@@.. @@.. @@.. @@@@@@@@ @@.. @@@@ .. @@@@@@@@ @@ ..
@@.. @@.. @@.. @@...... @@.. @@.. @@.. @@........ @@.. @@.. @@ @@........ @@..
@@@@ @@@@.. @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@ @@.. @@..
@@.... @@.. @@.. @@.. @@@@@@@@@@ @@@@@@@@@@ @@@@@@@@@@ @@.. @@.. @@ @@@@@@@@@@ @@..
.. .. .. .. .......... .......... .......... .. .. .. .......... ..
@@@@@@@@ @@@@@@ @@ @@ @@@@ @@@@@@@@@@ @@ @@ @@@@@@ @@ @@ @@@@@@@@@@
@@ ........ @@ .... @@ @@@@ @@.. @@@@.. .. @@...... @@@@ @@@@.. @@ .... @@ @@.. @@.. @@..........
@@.. @@.. @@.. @@.. @@ @@.. @@.... @@.. @@.. @@ @@.. @@.. @@.. @@.. @@.. @@..
@@.. @@@@@@@@@@.. @@.. @@@@.. .. @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@@@@@@@
@@.. @@...... @@.. @@.. @@.. @@.. @@.. .. @@.. @@.. @@.. @@.. @@.. @@........
@@.. @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@ @@ .. @@..
@@@@@@@@ @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@@@@@ .. @@ .. @@@@@@@@@@
........ .. .. .. .. .. .. .. ...... .. ..........
@@@@@@ @@ @@@@@@ @@ @@ @@@@@@@@@@
@@ .... @@ @@.. @@ .... @@ @@@@ @@.. @@..........
@@.. @@.. @@.. @@.. @@.. @@.. @@ @@.. @@..
@@@@@@@@@@.. @@.. @@.. @@.. @@.. @@@@.. @@@@@@@@
@@...... @@.. @@.. @@.. @@.. @@.. @@.. @@........
@@.. @@.. @@.. @@.. @@.. @@.. @@.. @@.. @@@@
@@.. @@.. @@@@@@@@@@ @@@@@@ .. @@.. @@.. @@@@@@@@@@ @@@@..
.. .. .......... ...... .. .. .......... ....
Deposit SOL into a vault that only opens with a one-time key made from hashes. If ordinary wallet signatures are ever broken, your savings still need that second key.
+-
CA -+ coming soon_
the token address appears here at launch
+ +
____
/@@%*_
|%@@# +- |
|# @ @* =- |
________\ = @ +- ::
_____ ___\ : :......: _ @ : .. ___ ____
|%@@% + \ ... *_________/___ :... _______ /@@%+_
|%@ @ _ . #__/#####%%%%%|____ .. - ....... _/%@@# +- |
_\__/_/###*******####%%%#|__ .. - ...... \#* + ---
_\ : \/##** ++========++ **##%%%%|__ ..:... : _ =- - :: \
\ : \##*+ +=--: :.. _________ + +*#%%%#|__ . - . | . : . _ . \ . __
_/##** +=-: :.. ___\ ........ |____*#%%%#|_ .:. |__ . - .... _
/##** +=- :.. __\ ....:::::::..... |__#%@%#|_ ..... |/ ..... _
_/##* +=- :. . _\ ..::::::.....:::::... |_#%@@#|_ .:.......... _
/##*+ =-: . . _\ ..:::..::::::::::..::::. |__#@@#|_ . - .......... _
/##* +=- : . _\ .:::..: ::: ::::::: ::: ::..::.. |_%@@#|_ . _ .......... _
/#** +-: . \ ..:::.: :: ::....:::....:: :: :.:::. |_%@@#| - ........... . _
_/#*+ =-: .. \ .::.: : ::..: :::::::::: ::..: :: :.::. |#@@@#| . - .......... . |
/*#*+ =- : _ . \ ::.: : :..: :: ::........:: :: :..: : :.:: |_%@@%|_ ............ _
|*#*+ =- : \ ..: ___________ .:: :::::: ::..: :: :.: : :.:: |_@ @ @#| . _ .......... . _
/#*+ =- : . . \_/ @##**@@ : - * |___ :...::: :: :..: : :.: : :.:. |#@ @ %| - . ...... . \__% * _
/#*+ == : . \ @%* =: . ____ @# = +**# |__ ::::..:: : :.: : :.: : ::: |_@ @ @#| . _ .... \####+ =-
/#** +=: . \ %* : .. / : : :. |___ - :::. # |_ : ::: ::.: :: .. : :.: : .:: |% @@ %| + | ... : _ ==: : _ : \
/*#* +=: \ @* :- @ - : ::.: : :.: : ___ . __ @ |_ ..:: : :..: : .: : :. : :.: |#@ @ @* = . .. | . . ___\ .. _
|*#* +=- \ % + : . __ @ | :.: : .. :: :.:: :: | @@ |_ ::..: : :.: : .: : .: : .: |_@ @ @*| . ... | ........ |
/##* += \ # = : / :: |@|_ : :.: : :.: :: ::. |_ @@ | : :: :.: : :. : :. : :. : :.: |% @@ #| . _ .... |\ ..... |
/##* += \ # = : / ::. |@ @ | :. : :.: : :..::: : |_ @ |_ .: : :.: : .: : :: : .::.: |% @@ %|#| ........... |
|*##* + \ % + : / : : .: |_ @ | . : :.: : ..: :: :::: |@ @ |_ .: : :.::.::. : :: : .: |# @@ % + - | ........... _
/### + \ %* - / . : .: : . |@|_ :. : :.: : :...::: | @@@ | :.: : :. : :: : .::. : :: |# @@ @+ - | ............ |
|*##* \ @* = / .::: : .: |@ @ | . : :. : :..: :: :: : |_@ @ | : :.: : .::. : :: : .::: |#@ @ @+ - | ............ |
/### | @# + | :: : . : :: : |_ @ | : :: : :.: : :...... |@ @ | . : :. : :. : .::. : .::. |#@ @ @+ - | ............ |
|*#%# \ @* - / . : :::. : .: |@|_ : : .: : :.::....: |@ @ |_ : : .: : . : :: : . : :::. |#@ @ @+ - | ............ |
/#%% | @% + | :::. : .::: : |@ @ | : . \__ .:....... |@ @ # | . : :. : .::. : .::: : . |#@ @ @ + - | ............ |
|*#@% \ @# = / . : .::: : . : : |_ @ |_ :-+ |_______ .. \@ @ * | .::. : :::. : .::: : . |# @@ % + - | ............ |
___\##@ | #@ * | :::. : . : :: : . : | @ |_ ::--+ #++++ |_ : |@ @ * | :: : . : :::. : .::: : . |# @@ % + : | ............ |
\@@#*#@@ - @# + / . : :::. : . : ::: @ __/ %# - : -+ @ ++++ - . |@ @ + / :. : . : :::. : .::::. |# @@ # =- \ ............ |
|@ @ @# |__/ # = # = :. : . : .::: : . : |/ @ @@ % == : ::= =+++- : \@ % = ::. : . : :::. : . : :::: |# @@ * = . : ............
| ++= --==+++* | :::. : . : .:: #0 @ @|____________ %@@# |/ :. : . : .::: : . : .::: |% @ @*| . ............ |
__| ____ ::: - | . : :::. : . : .:: | *** = |____________ @@ * | ::: : . : .::::. : . : .: \@ @ % + || .... _______ . \
|+#@ @|@ % * | . : . : :::. : . : . \__ ==- :. : :: :: -=- : |@ % + / : .::: : . : .::::. : . |#@ @ # = - | ... ||*%@ @ %| - |
|*# @@|@ @ * / : : . : .::::. : | % : |_ . ... -== : --- :. \ @# | . : . : :::: : . : .::::. |#@@* =- \ .... | =+ + + +-- \
|*% @@|@ @ * :::. : . : :::. : \ # - / : .. -= ** :::::. | @% + / ::: : . : .::: : . : .::: \% @ % + | . .... | . _____/ .
|*% @ @ |@ @ | :::. : . : .::: \ # = / ::-=+ * = ::::... \ @* | . : .::: : . : .::: : . : . |#@@* = : | ............ |
|#@ @ @ |@ @ |_ ::: : . : .:: \ % + | : |_____ ....... \ @# = / : :: : . : :::. : . : :::. |#@%* -- \ ............ |
|#@ @ @ |@ @% | ::: : . : .: \ @* : / :. : .:. |_____ . \ @% + | ::. : :::. : .::: : . : .: \%@* + - | .............
|#@ @ @ | @@% | ::: : . : . | @* - / : : .::.:....... \ %* - / :.::. : .::. : . : :: : . |#%%+ = : \ ............ |
|#@ @ @ |_@ @ | ::: : . : : \ # = / :. : :: : :.:..... \ %* - / :.::. : :: : . : :: : . : :: \#%* + | .: ............ |
|#@ @ @ + |@ @ |_ :. : .: \ # = / : : .: : .: : :..::: \ %* = / :.::.::. : .::. : .::. |#%# += : \ .............
|#@ @ @* |_ @@ | :. : . \ % + | :. : :. : :.: :: ::: \ %* = / .: : :.::. : :: : .::. : .: \##* = | .: ............ |
|#@ @@ * : | @@ |_ .: \ %* : / : .: : .: : :..:: : \ %+ - / .: : :. : :. : :. : :: : . : :: \##* + - : \ .............
|*% @@ # - |_ @@ | . \ @ + : / . : :. _ : ..: : ::. \ # + - / : : :.: : :. : :. : :. : .::. |##* += : | ............. |
|*# @@ % = . |_ @ | *% - . / : .: |/|_______ = * = : / ::.: :: .: : :. : :. : :: : .: \#* += - - \ .............
|+#@ @ @ + .. |_ @@+ . . .::. |_ . _ : =++- * -- _/ ..: :: :.: : :. : :. : :: : .: \#*+ +- . \ ............. /
| = #@ @ @*| . _ |__ @@ |_ . : :.: : \ .:: --- . / :: :: ::.: : :.: : :. : :. : :: \#*+ += | .. ............ |
|*% @@ #| = .:. |__ @ |_____ @@* =- . __/ :::...: :: :.: : .: : :: : :: \#*+ += : - \ .... __ .......
|*#@ @ @ + | .::. : |___ %%##* =: __/ ::..::: :: :..: : :.: : .: : :: |#** += :. \ ... _ . + : ...... /
| = #% @ @#| ..:.: : :. |_____/ ..:: ::::: :::..: : :.: : :.: : .:: \** += - . \ ... | - /*|__ ... |
/*#@@%|_ . _ :.: : .. :: :.: :: ::.......:: :: :..: : :. :: .:: \** ==- . \ ..... |_@@@|_ ..
|# = _%@@#| ..::.: : ..: : :..:: ::::::::: ::..: : :.: : :.: \#*+ ==: . \ . ...... |_@@*|_/
| = *#@@%#| ..::.: : :.: :: ::...::::....: :: :.: :: .:: \#*+ =-: . \ . ........ |___ - /
| - *#@@#|_ ..::.: : :..:: ::: :::::: ::: ::.:: : :.:: \#* +=- :. \ . ............. /
| = _%@@#|_ ..::.:: : ::..:::::::::...: :: :.::. \** +=- :. \ . ............. /
| . + _%@%#|_ .. _ ::.:: :: :::.....::: :: :..::. \#*+ =-- .. \ .............. /
| . + _%%%#|_ : ..:::..:: :::::::: ::...::. \#** +=-: _ : \ .............. /
| . + _#%%%#|_ ...::::..........::::. _##*+ =-: . \ .. .............. /
| . = _#%%%#|__ ....:::::::::::... \/#*+ +=: : . _\ . .............. /
| . - _*#%%%%|___ ............ __##*+ +=- : .. \ . .............. _/
| .: __*##%%%%|___________/#** +=-: : . _ - \ . .... _ ......... /
| .. : __**##############** ++=-: . . __\ . .. __ . . :....... _/
_| . _\__ + +********** ++==-: .. . _\ .. ... | : __/|_ ..... /
/ += |_\____ ======---: ... ___\ .. ....... | @ @%|_ .. _/
|#%* =- |_ .. |____________\ ... .......... |@ @ @#||/
|*#* = : - _| .............. .............. |##* +- |
| :: .: / ______| .... ______ ........... | :: .: -
___/ __/ : @ - : ......... ____/ ____/
| = * @ + = : |______/
|%@ @ # +- |
|###* =-
| :: .: /
___/
> wallet key alone[locked] wallet key alone: locked
[x] [ ] [ ] [ ]
Why a second key. Every Solana wallet is an elliptic-curve key. A large enough quantum computer could work that key out from your public address and move everything it holds.
Hash functions don't have that weakness. So this vault asks for a signature built only from hashes, from a phrase that never touches your wallet.
+- two keys what each key can do -+
Your wallet key, next to the vault key. Both sign transactions. Only one of them is built from hashes.
Comparison of the ed25519 wallet key and the hash-based vault key Property o-+ ed25519 wallet key#-+ hash-based vault keymade from an elliptic curve (ed25519) hash functions only (SHA-256) signs as many times as you like exactly once, then the vault rolls on chain the full public key: your address only a hash of the public key signature 64 bytes 784 bytes (28 hash chains) large quantum computer could work the key out (Shor's algorithm) no known fast attack: forging still takes about 2^104 work, even with Grover in this vault pays fees, sends deposits the only key that moves the funds
+ +
Create, deposit, withdraw. Your normal wallet pays fees and sends deposits. Only your vault phrase can sign a withdrawal.
+-
1. create a vault -+ phrase
|
v
key #0 Your browser makes a 24-word vault phrase. Write it down, then type three of the words back to confirm.
+ +
---> +-
2. deposit -+ wallet
|
SOL
v
vault #0 Send SOL from your normal wallet, as much as you like. Your wallet pays the fee.
+ +
---> +-
3. withdraw -+ key #n x
|
v
vault #n+1 Sign with the live key from your phrase. That key is spent, and what's left rolls into the next vault.
+ +
how the one-time keys work ->
+-
key roll Example * live -+ 0.8420 @@@@@@ @@@@@@ @@ @@@@@@ @@@@@@
@@ .. @@@@ @@ .... @@ @@@@.. @@ .... @@ @@ .. @@@@
@@.. @@ @@.. @@.. @@.. @@ @@.. .. @@.. @@.. @@ @@..
@@.. @@.. @@.. @@@@@@ .. @@ .. @@.. @@ .. @@.. @@.. @@..
@@.. @@.. @@.. @@ .... @@ @@@@@@@@@@ @@ .. @@.. @@.. @@..
@@@@ .. @@.. @@@@ @@.. @@.. .... @@.... @@ .. @@@@ .. @@..
@@@@@@ .. @@@@.. @@@@@@ .. @@.. @@@@@@@@@@ @@@@@@ ..
...... .... ...... .. .......... ......
SOL vault address 9xQe..Vb4K live key #3 keys spent 3, no limit keys #0 --> #1 --> #2 --> [#3 live] --> #4 next
Withdraw to watch the live key get spent and the rest roll into a fresh vault.
withdraw 0.1 SOL reset
+ +
+-
winternitz chain Example w=16 -+ A key is a set of hash chains. Signing reveals one point on each chain. Anyone can hash forward from that point, so a checksum chain runs the other way, and every key is used once.
digit 0x6 checksum 0x9
msg sk . - . - . - . - . - . - @ - - - - - - - - - - - - - - - - - - > pk
check sk . - . - . - . - . - . - . - . - . - @ - - - - - - - - - - - - > pk
Revealed step 6 of 15 on the message chain, and step 9 on the checksum chain. Dashes after each point can be computed by anyone.
sign a new message try to forge
+ +
+- start -+
[phrase] ---> key #0 ---> vault #0 Create a vault. Two minutes on mainnet: write down a vault phrase, deposit from your wallet, then try a withdrawal and watch the key roll.
create a vault + +