What are the improvements brought by RingCT regarding selection of inputs and outputs?

1 Answer 1


Essentially, RingCT increases the number of usable outputs to mix with and reduces the need to use multiple outputs for transactions.

The first part is easy - because RingCT hides the amount, all transactions are interchangable. I can mix a 10 xmr output with a 1000 xmr output... because you can't see the amount on the chain anymore.

For instance, in the old style, if I were to send 123.45 monero, and assume I owned a nice distribution of outputs, the transaction would be created by:

100 monero output
10 monero output
10 monero output
10 monero output

So, if I just started using Monero, its likely all of those outputs are in the same block, therefore they'd all stack in time, and it would be obvious which outputs are the real ones (ok, obvious is a strong word here). If I had a well "seasoned" wallet, they would be distributed over time. Please refer to the SE entry here

Now, with RingCT, I don't need the entire stack. Indeed, the outputs no longer need to be split into those denominations. With a ringCT transaction, if I send you 123.45 XMR, there's gonna be an output for 123.45 xmr, not 5 outputs. And I can use any of my outputs (as inputs for that transaction) that I want. Indeed, with the advent of RingCT, it will probably be the case that wallets will only maintain 1 output.

I have 145.3 xmr in my wallet, all in one output.

I create a transaction to send 20 xmr. I use my 145.3 output, and the change comes back. So I have a new single output of 125.3 xmr. That I can then mix with whatever.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.