The question here Proving amount of Monero - Range Proofs

Talks about how to do a range proof, but it doesn't quite say how to do it using existing methods of making a payment. I want to prove a number is between to positive values, can an existing application, like a specific wallet do this, or is there program code that can do this?

  • 2
    Monero's range proofs prove that a commitment to a number is between 0 and 2^64. If you wanted to prove a commitment to a number is between two arbitrary numbers, you need a slightly more complicated proof involving potentially two range proofs. Please elaborate on the the intended use of this feature - it might inspire someone to implement the feature you describe.
    – knaccc
    Jun 4, 2019 at 16:22

1 Answer 1


The Monero wallets (official or any others that I'm aware of), do not offer any functionality to perform generic range proofs.

For a generic range proof, you could use code as in user679128's answer. If you are a competent Java developer, there is also a Java library created by one of the Bulletproof authors, which could be used to help implement what you require.

If your question is specific to Monero, insofar as you are wanting to prove you have funds in the wallet between values X and Y, currently this functionality does not exist, though I can imagine use-cases for this functionality. The nearest functionality that exists is get_reserve_proof, which proves you have at least X in your wallet.

  • For a bulletproof rangeproof, there is an implementation by Dalek: github.com/dalek-cryptography/bulletproofs
    – user679128
    Jun 4, 2019 at 15:58
  • I'm a java developer, but I guess I can learn Rust! What environment was it intended to be used in, a blockchain project? Which blockchain project?
    – Ron King
    Jun 4, 2019 at 20:31
  • @RonKing for that particular repo, I think stellar. You can make a java implementation. I believe there was one in golang on GitHub, but the Dalek version is by far the cleanest
    – user679128
    Jun 4, 2019 at 20:35
  • There's an Etherum client called Parity github.com/paritytech/parity-ethereum, maybe I could add the rust bulletproof code into it? Java would be better for me though.
    – Ron King
    Jun 4, 2019 at 20:39
  • @RonKing I know Parity. It depends on what you want, it was not stated in the question. An EVM with a rangeproof instruction would be possible. This is better for the ethereum stack exchange or another question though
    – user679128
    Jun 4, 2019 at 20:45

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.