Hi Jameson,
CTV does enable vaults, but the user has to (carefully) move coins into the vault themselves. Because CTV commits to the amount, among other things, you can't simply publish a vault address and receive arbitrary amounts there. They'd be stuck, committing to an impossible to satisfy CTV hash.
Understood. OP_CCV enables more flexible / user friendly vaults. Sounds good to me!
I'll just reiterate my previous point that custody software services would rather have a "good" tool in the hand than a better solution waiting on the distant horizon.
There's also the question of what, if anything, the user needs to backup after each deposit [0]. It's probably just the deposit transaction id, which is arguably something that can be recovered with some (?) work.
OP_CCV enables a more flexible design where the user can receive arbitrary amounts directly into their vault address, and with nothing to backup after initial setup (seeds + descriptor-like-thing).
Here's a demo functional test for an OP_CCV vault (without CTV): https://github.com/bitcoin/bitcoin/pull/32080
The problem with both demos is that they use boutique software. There's not yet a potentially interoperable standard to describe these things.
Hopefully some simple vault schemes can be shoehorned into the existing output descriptor paradigm [1], because inventing a whole new way of making vault-aware wallets interoperable would take many years.
To illustrate such schemes, I'd love to see a working demo using just a (patched) Bitcoin Core wallet. Though perhaps a library like BDK[2] is an easier platform for such ideation.
- Sjors
[0] https://github.com/jamesob/simple-ctv-vault/issues/9
[1] https://delvingbitcoin.org/t/ctv-vault-output-descriptor/1766/8
[2] https://github.com/bitcoindevkit
> Op 13 jun 2025, om 17:41 heeft Jameson Lopp <jameson.lopp@gmail.com> het volgende geschreven:
>
[...]
>
> I'm not sure how to parse Antoine's claim that CTV+CSFS doesn't enable vaults given that there has already been a CTV vault client proof of concept for 3 years: https://github.com/jamesob/simple-ctv-vault
>
> On Fri, Jun 13, 2025 at 9:07 AM Antoine Poinsot <darosior@protonmail.com> wrote:
[...]
> That said, consensus-enforced vaults require a mechanism to forward any amount received on a script A to a pre-committed script B. CTV+CSFS does not enable this, and a primitive that actually does (like CCV) is more controversial because of its potency.
[...]
> I also appreciate that CTV is nice to have for CCV vaults, but a potential future use case that is not enabled by one proposal cannot be used to motivate said proposal.
>