Skip to content

Instantly share code, notes, and snippets.

@Rucknium
Created September 11, 2024 16:58
Show Gist options
  • Save Rucknium/d2c02f51a2d9f103a28caa8f51be7dbf to your computer and use it in GitHub Desktop.
Save Rucknium/d2c02f51a2d9f103a28caa8f51be7dbf to your computer and use it in GitHub Desktop.

Tabulation of Monero transaction inputs and outputs

Here is a tabulation of the number of inputs and outputs of each Monero transaction during a five-year period (2019-03-04 to 2024-03-04).

R code to reproduce:

# Run https://github.com/Rucknium/misc-research/blob/main/Monero-Effective-Ring-Size/xmr-ring-gathering.R
# Then:

# install.packages("knitr")

beginning.height <- 1784324  # 2019-03-04 15:20:22 UTC
start.spam.height <- 3097764 # 2024-03-04 15:21:24 UTC


n.inputs <- xmr.rings[ beginning.height < block_height_ring &
  block_height_ring < start.spam.height, 
  .(number_of_inputs = max(input_num)), by = c("tx_hash")]

n.inputs <- as.data.frame(prop.table(table(n.inputs$number_of_inputs)) * 100)
n.inputs$cumulative <- cumsum(n.inputs$Freq)
names(n.inputs) <- c("Number of inputs", "Share (percentage)", "Cumulative share")

knitr::kable(n.inputs, format = "pipe", row.names = FALSE,
  digits = 5)


n.outputs <- output.index[beginning.height < block_height &
  block_height < start.spam.height &
    output_amount == 0 & tx_num != 1, 
  .(number_of_outputs = max(number_of_outputs)), by = c("tx_hash")]

n.outputs <- as.data.frame(prop.table(table(n.outputs$number_of_outputs)) * 100)
n.outputs$cumulative <- cumsum(n.outputs$Freq)
names(n.outputs) <- c("Number of outputs", "Share (percentage)", "Cumulative share")

knitr::kable(n.outputs, format = "pipe", row.names = FALSE,
  digits = 5)

Number of inputs

Number of inputs Share (percentage) Cumulative share
1 54.06724 54.06724
2 38.98393 93.05116
3 1.91450 94.96566
4 0.97294 95.93861
5 0.62223 96.56084
6 0.46069 97.02153
7 0.35652 97.37805
8 0.29441 97.67246
9 0.24665 97.91911
10 0.24168 98.16079
11 0.18053 98.34133
12 0.15063 98.49196
13 0.13002 98.62198
14 0.11427 98.73625
15 0.10234 98.83859
16 0.09614 98.93473
17 0.07834 99.01306
18 0.06833 99.08139
19 0.06239 99.14378
20 0.05884 99.20263
21 0.04949 99.25212
22 0.04272 99.29484
23 0.03846 99.33330
24 0.03545 99.36875
25 0.03390 99.40265
26 0.02823 99.43088
27 0.02553 99.45641
28 0.02386 99.48027
29 0.02166 99.50193
30 0.02229 99.52422
31 0.03664 99.56086
32 0.01672 99.57758
33 0.01513 99.59271
34 0.01453 99.60724
35 0.01326 99.62051
36 0.01264 99.63315
37 0.01123 99.64438
38 0.01048 99.65485
39 0.00992 99.66478
40 0.01008 99.67485
41 0.00909 99.68395
42 0.00821 99.69215
43 0.00784 99.69999
44 0.00746 99.70745
45 0.00718 99.71463
46 0.00687 99.72150
47 0.00649 99.72798
48 0.00627 99.73425
49 0.00613 99.74038
50 0.00717 99.74755
51 0.00541 99.75296
52 0.00510 99.75806
53 0.00502 99.76308
54 0.00465 99.76773
55 0.00435 99.77208
56 0.00418 99.77626
57 0.00407 99.78033
58 0.00417 99.78450
59 0.00393 99.78843
60 0.00606 99.79449
61 0.00404 99.79853
62 0.00363 99.80215
63 0.00356 99.80571
64 0.00373 99.80945
65 0.00326 99.81271
66 0.00337 99.81608
67 0.00302 99.81910
68 0.00321 99.82230
69 0.00315 99.82545
70 0.00425 99.82970
71 0.00278 99.83248
72 0.00287 99.83535
73 0.00309 99.83844
74 0.00272 99.84116
75 0.00180 99.84296
76 0.00166 99.84463
77 0.00165 99.84628
78 0.00170 99.84798
79 0.00164 99.84962
80 0.00169 99.85131
81 0.00162 99.85293
82 0.00155 99.85448
83 0.00154 99.85602
84 0.00160 99.85761
85 0.00144 99.85905
86 0.00144 99.86050
87 0.00154 99.86204
88 0.00150 99.86354
89 0.00146 99.86499
90 0.00138 99.86638
91 0.00141 99.86778
92 0.00128 99.86907
93 0.00137 99.87044
94 0.00126 99.87169
95 0.00128 99.87297
96 0.00116 99.87413
97 0.00114 99.87527
98 0.00125 99.87652
99 0.00124 99.87776
100 0.00131 99.87907
101 0.00117 99.88024
102 0.00111 99.88135
103 0.00104 99.88239
104 0.00097 99.88336
105 0.00106 99.88442
106 0.00107 99.88549
107 0.00096 99.88646
108 0.00090 99.88736
109 0.00095 99.88831
110 0.00092 99.88923
111 0.00101 99.89024
112 0.00088 99.89112
113 0.00094 99.89206
114 0.00085 99.89292
115 0.00078 99.89369
116 0.00089 99.89459
117 0.00089 99.89548
118 0.00090 99.89638
119 0.00422 99.90060
120 0.00596 99.90656
121 0.00076 99.90733
122 0.00064 99.90797
123 0.00057 99.90853
124 0.00057 99.90910
125 0.00068 99.90978
126 0.00056 99.91034
127 0.00059 99.91092
128 0.00055 99.91148
129 0.00060 99.91207
130 0.00058 99.91265
131 0.00056 99.91321
132 0.00053 99.91375
133 0.00060 99.91434
134 0.00058 99.91493
135 0.00054 99.91547
136 0.00049 99.91596
137 0.00059 99.91655
138 0.00054 99.91709
139 0.00052 99.91762
140 0.00050 99.91812
141 0.00044 99.91855
142 0.00050 99.91905
143 0.00064 99.91970
144 0.00055 99.92025
145 0.00078 99.92102
146 0.03634 99.95736
147 0.00160 99.95896
148 0.00096 99.95992
149 0.00080 99.96072
150 0.00087 99.96160
151 0.00077 99.96237
152 0.00065 99.96302
153 0.00040 99.96342
154 0.00020 99.96362
155 0.00019 99.96382
156 0.00018 99.96400
157 0.00024 99.96424
158 0.00022 99.96445
159 0.00022 99.96467
160 0.00017 99.96485
161 0.00014 99.96499
162 0.00017 99.96517
163 0.00020 99.96537
164 0.00021 99.96558
165 0.00017 99.96575
166 0.00020 99.96595
167 0.00018 99.96613
168 0.00016 99.96629
169 0.00017 99.96646
170 0.00016 99.96663
171 0.00017 99.96679
172 0.00021 99.96701
173 0.00021 99.96721
174 0.00018 99.96739
175 0.00016 99.96755
176 0.00018 99.96773
177 0.00020 99.96793
178 0.00013 99.96805
179 0.00021 99.96826
180 0.00014 99.96841
181 0.00015 99.96856
182 0.00013 99.96869
183 0.00017 99.96885
184 0.00017 99.96902
185 0.00179 99.97081
186 0.00015 99.97096
187 0.00009 99.97105
188 0.00013 99.97118
189 0.00013 99.97132
190 0.00468 99.97600
191 0.00016 99.97615
192 0.00019 99.97634
193 0.00336 99.97971
194 0.01854 99.99824
195 0.00031 99.99855
196 0.00013 99.99869
197 0.00005 99.99873
198 0.00007 99.99880
199 0.00006 99.99887
200 0.00006 99.99893
201 0.00006 99.99899
202 0.00005 99.99903
203 0.00004 99.99907
204 0.00005 99.99912
205 0.00003 99.99915
206 0.00003 99.99919
207 0.00003 99.99922
208 0.00005 99.99927
209 0.00002 99.99930
210 0.00003 99.99933
211 0.00004 99.99937
212 0.00004 99.99941
213 0.00005 99.99945
214 0.00003 99.99948
215 0.00002 99.99951
216 0.00002 99.99952
217 0.00001 99.99953
218 0.00002 99.99954
219 0.00001 99.99955
220 0.00001 99.99956
221 0.00001 99.99957
222 0.00001 99.99958
223 0.00002 99.99960
224 0.00001 99.99961
225 0.00001 99.99961
226 0.00001 99.99962
227 0.00002 99.99965
228 0.00002 99.99966
229 0.00001 99.99967
230 0.00002 99.99968
231 0.00002 99.99970
232 0.00002 99.99972
233 0.00000 99.99973
234 0.00001 99.99973
235 0.00001 99.99974
236 0.00001 99.99975
237 0.00001 99.99976
238 0.00002 99.99977
239 0.00002 99.99979
240 0.00002 99.99981
241 0.00001 99.99982
242 0.00001 99.99983
243 0.00000 99.99983
244 0.00002 99.99984
245 0.00001 99.99985
247 0.00002 99.99987
248 0.00001 99.99987
249 0.00002 99.99989
250 0.00001 99.99990
251 0.00001 99.99991
252 0.00001 99.99991
253 0.00001 99.99993
254 0.00002 99.99994
255 0.00001 99.99995
259 0.00001 99.99995
261 0.00000 99.99996
264 0.00001 99.99996
265 0.00000 99.99997
266 0.00001 99.99997
267 0.00000 99.99998
268 0.00000 99.99998
270 0.00000 99.99998
272 0.00000 99.99998
273 0.00000 99.99999
274 0.00001 99.99999
277 0.00000 100.00000
282 0.00000 100.00000

Number of outputs

Some transactions in 2019 have only one output. Those transactions were produced before the two-output-minimum blockchain consensus rule.

Number of outputs Share (percentage) Cumulative share
1 0.00609 0.00609
2 94.16030 94.16639
3 1.43294 95.59933
4 0.88349 96.48282
5 0.46521 96.94803
6 0.33533 97.28336
7 0.24259 97.52595
8 0.18496 97.71091
9 0.25809 97.96901
10 0.09523 98.06423
11 0.25446 98.31869
12 0.05823 98.37693
13 0.05679 98.43371
14 0.04863 98.48234
15 0.04930 98.53164
16 1.46836 100.00000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment