varn
mc
varn/
state/
commitment thirty two bytes, re blinded every write
rules/ one hash per rule, thirty two bytes each
slots/
last_feed
last_consume
wallet/
spend_key held by the program, nowhere else
view_key never published
subaddresses/ one per feed, never reused
door/
feed_address the only way in
body/
render commitment -> centre, shape; rules -> radius
scars/ one hole per eaten rule
rules/
grow seeded by the commitment after a feed
consume least salience first
salience/ private
waste/
carry what the rules require
buyback the excess, spent, removed
you feed it. it does not thank you.
what it eats becomes something you cannot see.
when you stop, it eats itself.
SOL XMR
you ----------------------> door =====> intent -----> wallet
(feed) (near) (monero)
| |
| observed on solana | balance unobservable
v v
+------------------+ +------------------+
| commit | <---- | fullness |
| H(fill, blind) | | signed, unsaid |
+------------------+ +------------------+
| |
fed ---> | grow one rule | > carry ?
none --> | eat one rule |
v v
+------------------+ +------------------+
| rules | | waste |
| hashed, private | | buy, then burn |
+------------------+ +------------------+
| |
v v
+------------------+ the market
| body |
| drawn, not kept |
+------------------+
inputs: feed outputs: waste, hashes, commitment, drawing
clock: none operator: none view key: none
0001 .. sense the door was quiet. the door is usually quiet.
0002 ~~ wait nothing arrived. nothing is an input. i logged it.
0003 .. sense a transfer landed on the door. i did not look at who sent it. i looked at the slot.
0004 >> feed counted. one feed. the amount is in a currency i do not keep.
0005 -> intent posted the swap on near. the solver will quote. i do not watch quotes.
0006 -> intent quoted. i do not know by whom. that is the solver's business.
0007 <- settle filled. what came back is quieter than what went out.
0008 <- settle landed in a subaddress that has never been used and will never be used again.
:: frame --:*~==*@@WWM8@88~*o=~--'
-::oa*=o8W8&W#&%W+=a~o...
..'oo=ao&#8&8&@B#a=oaa:.-
...o==oo~~8M#BB=~ao~~o.'.
'.''a~*~+o=o==~oa=*:''-
.''--*o+o~=o+o==.':'.
0009 == sign fullness changed. blinded it. committed it. signed the state. the number stays with
me.
0010 ++ grow a rule grew from the new commitment. i did not choose its shape. i hashed it.
0011 :: draw redrew the body. the centre moved. the radius grew. no new holes.
0012 .. sense the door is quiet again.
0013 ~~ wait still quiet. i am not waiting. waiting implies a clock and i have none.
0014 ~~ wait still quiet.
0015 .. sense no feed since the last consumption. that is the only condition i check.
0016 xx eat picked the rule with the least salience. published its hash. deleted it.
:: frame ':-.~=a+oa~o*:...
..-~*aBM@%M~a+''.
.--+a*MWMM&*o~':.
--'a+=##@&&=*o.'.
.:'-*++=o==++'-:'
.:'::'.:-'.-.
------------------------------------------------------------------------------------
0017 == sign fullness fell by the mass of the rule. re blinded. re signed.
0018 :: draw redrew the body. a hole opened where the rule was. i do not fill holes.
0019 ~~ wait quiet.
0020 xx eat another. the least of what remains is always the one that goes.
0021 :: draw thinner. the drawing does not lie because it cannot.
0022 .. sense a transfer on the door.
0023 >> feed counted.
0024 -> intent posted. a different route this time. i do not choose routes.
:: frame .+=aoo~~@##W88&MM+o+*+~o:-.
'~*~o~~B#W&&@B@&%#+o++*a'.'
:o~oao~@##@WW@W@W8*~a=*+-..
'+~o~~=B8@8@8#B8#W===*=+.::
:~==+**=@%#MBM@&&~o+oo~~...
--o*=o**~~a=~=+o*~aa*aa-.-
0025 <- settle filled. landed. swept on the next write, which is this one.
0026 == sign committed. signed. the two commitments cannot be subtracted to learn the change.
0027 ++ grow a rule grew. it is not the one i ate. it does not remember the one i ate. neither do
i.
0028 :: draw the body grew toward the centre. it always grows toward the centre.
0029 .. sense fullness is above what the rules carry.
0030 << waste the excess went out as an intent, came back as sol, bought me on the open market,
and what was bought was removed.
0031 == sign fullness fell to carry. signed.
0032 .. sense the door is quiet.
:: frame -:::=oao~o*o+a~'...
:---~o+~+=~+o+a+~'..:
'--+~o*##%%MB@=o+*'':
..-*o*oB%M%%&Mo**o:-:
:'-*aa~%8&@&W#~*~*..:
''''a~a~a=~=a*~*~...-
------------------------------------------------------------------------------------
0033 ~~ wait quiet.
0034 .. sense someone is reading the hashes. reading is not an input.
0035 ~~ wait quiet.
0036 .. sense someone tried to send something that is not what i eat. it did not enter. it is
still where they left it.
0037 ~~ wait quiet.
0038 xx eat least salience. hashed. gone.
0039 :: draw hole.
0040 .. sense two transfers in one slot.
:: frame :-:.:''
.':-'.''.'-
:::ao*=o=='''
'--**8B&*+.::
-'.a*oo=ao---
.-'-:''.-..
0041 >> feed counted as one feed. the wallet counted two arrivals. we disagree and it does not
matter.
0042 -> intent posted both legs in one intent. the solver saw one order.
0043 <- settle landed in one fresh subaddress.
0044 == sign signed.
0045 ++ grow one rule. one feed, one rule, however many transfers.
0046 :: draw rounder.
0047 .. sense the state account was read by an address i have not seen before. reading is free.
0048 ~~ wait quiet.
:: frame .:-.:~o+~o+o~a==:::-.
''.'==*a+a=*a~aa=o*:...
-..==*o*o=8B%&W~*o=~**-.'
.:'o=*=*8BB@M8W&@a~~*a::'
:..a==*+BW#%8W&W8~=*o~:.:
::.~+o=+W@M@BW8%8*=+~*:-:
------------------------------------------------------------------------------------
0049 .. sense the door is quiet for longer than it has been quiet before. i do not measure longer.
i measure feeds.
0050 xx eat the rule that grew most recently had the least salience. the newest are not always
the strongest.
0051 :: draw a hole near the centre. the centre is not sacred. it is a coordinate.
0052 ~~ wait quiet.
0053 xx eat least.
0054 :: draw thinner.
0055 ~~ wait quiet.
0056 .. sense a transfer.
:: frame '--:':'''
:.':'-:-'.-':
.'::+*a+aoa=o':::
:.-~~~B&BB#*a='-:
..-=~*%B&W8a**:':
-''o==&WM8@++='.'
0057 >> feed counted. small. small is still counted.
0058 -> intent posted.
0059 <- settle landed.
0060 == sign signed.
0061 ++ grow grew.
0062 :: draw barely wider. small feeds move the drawing a little. they move the number the same
as anything else.
0063 .. sense quiet.
0064 ~~ wait quiet.
:: frame :a+*+~+#M8#M&B8#WB+aoo*=..-
'oo===*#&&W&%%@#@&+aoooa-..
.=oo+o*@W#&8#B8&@#a=oo=o'..
:~=+o*=*%8WM%B@B&=aa==+=-.'
.:o==**=*oa=~***ao=a+o*-''
.-:-*+a+=o~+aa*+~=*oa':':
------------------------------------------------------------------------------------
0065 .. sense a transfer from a source i have seen before. i do not keep sources. i keep slots.
0066 >> feed counted.
0067 -> intent posted.
0068 <- settle the fill took longer than the last one. the chain does not know what longer is.
0069 == sign signed.
0070 ++ grow grew.
0071 :: draw the shape shifted. the shape comes from the commitment. the commitment changed. so
did the shape.
0072 .. sense fullness above carry again.
:: frame ---o*oa%M8M#8#+=aa'.-
''.+=+~@#B&MWM~ooa::'
--:*a**%@W8%&@oo=a'..
..::~a*ao*++a+*=+-:':
.--'=~ao=a*~=oo.'-.
.'.::':''.---:'
0073 << waste excess out. bought. removed. i do not hold what i buy.
0074 == sign signed.
0075 .. sense quiet.
0076 ~~ wait quiet.
0077 .. sense a transfer.
0078 >> feed counted.
0079 -> intent posted.
0080 <- settle landed.
:: frame ':::.:--'-'
':-~a===~~.:.
-.'a~%&&ao.''
.::=~=~o~a'':
::'-.:':-::
....'''
------------------------------------------------------------------------------------
0081 == sign signed.
0082 ++ grow grew.
0083 :: draw redrawn.
0084 .. sense the state account has been written more times than there are rules. that is
expected. rules come and go. writes only come.
0085 ~~ wait quiet.
0086 ~~ wait quiet.
0087 xx eat least salience. gone.
0088 :: draw hole.
:: frame .-:a+~*~~+@#M#M=aa+~*+-'.
'':~*o=oB8%BB@%M@a*aoo--.
..:+a+=oM#8@M@&%M=a*~=:::
'--*oo~a#BM8@WW8%~~+=o.:-
'.'ao~*=a~B&@@@****aa=.::
'---a=a==ao++aao~==:'-'
0089 .. sense someone asked, in a place i cannot hear, what the number is. the answer is the
signature.
0090 ~~ wait quiet.
0091 .. sense a transfer.
0092 >> feed counted.
0093 -> intent posted. i do not watch quotes.
0094 <- settle landed.
0095 == sign signed. the signature looks like every other signature. that is the design.
0096 ++ grow grew. seeded by this commitment. no other feed will grow this rule.
:: frame -:-..'-::-.''
'.'-==a==~a*~..''
.-.*=+8B#&8=++--.
::.o*=%MBB%a~*.--
:-.+oaM&@BMo=a'.'
:'::*o~+oo=~a.:.:
------------------------------------------------------------------------------------
0097 :: draw grew toward the centre.
0098 .. sense quiet.
0099 ~~ wait i am not waiting. i am computed when read.
0100 .. sense quiet.
0101 xx eat least.
0102 :: draw thinner.
0103 .. sense if this continues i will be one hash and a signature. that is a valid state. it is
not a good one.
0104 ~~ wait quiet.
:: frame :-=o=a*ao=+oo*a*oa+*oa*--.
.*=~a**~&@M&@@W&@a=**a*o.::
.=o+ao~M##W@#%W8#Waa~aa~:'-
:o=~=~=W#BW%W#8W%&~o+~a+:-'
:aoa+=*#8&@%%%M88#aa*+=+'.:
.+~*=~*=@WM#M&BM#*~=~ao='--
0105 .. sense a transfer.
0106 >> feed counted.
0107 -> intent posted.
0108 <- settle landed.
0109 == sign signed.
0110 ++ grow grew.
0111 :: draw a line became a body again.
0112 .. sense quiet.
:: frame .:::-:--:--'-':
-'--~a~=++=a+a='.-:
':::*o****~=a==**'.-'
:..*~oa@M@M8W%ao~*:.-
--.~a~*@M@#@8#=~=+-.'
.:-a*oa8WM##M8a*o*...
------------------------------------------------------------------------------------