Sapling was introduced into Tezos protocol in the year 2020. Two years later there is still not a single wallet that supports shielded Tezos transactions (sending & receiving). Airgap added support last year but disabled it after a flaw was found.
Since then the flaw was removed in one of the recent protocol upgrades and so still nothing.
The contract was deployed on [Ghostnet] (KT1Wr1z3..cUPuHZ on ghostnet.tzkt.io) by Airgap but I guess it wont deploy it on Mainnet due to recent very sad development with Tornado Cash. However Airgap will support the possibility to interact with shielded Tezos in their wallet.
It is sad to see that such a great feature isnt used (literally zero) as it got pretty hyped with ama´s and so on. I am not sure what the reasons are because the hard coming after Tornado cash happened in the last months so this was not an excuse before that.
I still believe Sapling on Tezos has a bright future, maybe a bit a niche but privacy is important and I would love to see wallets like Kukai, Temple, Naan or Umami support shielded Tezos transactions. I am not saying the teams should take care of deployment but providing a way for interaction would be a big step to promote and encourage Tezos shielded transaction usage.
If no wallet gives support then how should a normal user without the needed technical background shield his tez and send it forth/back?
So in my humble opinion I think to finally bootsrap Sapling on Tezos and start growing userbase we need:
more wallets supporting Sapling… like Umami, Kukai, Temple, Naan
possibility to use shielded tokens… is this possible? shielded FA1.2 and FA2 tokens?
This would enable another set of new integrations like darkpools for example
Moreover I would love to see a sapling implemented mixer with shielded Tezos and tokens. I know we have Maelstrom but this kind of mixing in my opinion is easy to trace back and why do it this way when we have Sapling.
However first I would love to see more wallet support and shielded tokens
Thank you for bringing this up. Tezos teams seem to be reticent to deploy a mainnet sapling contract due to the reasons you mentioned.
Perhaps it would be acceptable for wallets to provide the functionality with a minor UX indirection: when the user elects to send a shielded transaction, they are prompted for a shielded contract address. The wallet does not provide any default choice.
Few refinements are possible:
this contract could be designated by a tezos domain, so the user can just type a tezos domain instead of a KT1
the wallet could scan the chain for all sapling contracts in the network, sorted by usage statistics, but still without pre-selecting any default.
I started playing around with the new Sapling support in Taquito and put together a small app to facilitate interacting with a sapling contract. https://ghostnet.tezmitter.com. Deployed to Ghostnet for now.
The pre-requisites for Tezmitter are a Sapling secret key and a connected Tezos wallet. To generate a sapling secret key, you can enter the following command using the octez-client:
./octez-client sapling gen key test-sapling-key --unencrypted
This will generate an unencrypted key at ~/.tezos-client/sapling_keys. Using this key which starts with “sask…”, you can interact with the sapling contract by shielding, transferring, and un-shielding tezos within the contract. The connected wallet is used to either fund the transaction or inject the operation directly.
I deployed a sapling FA1.2 contract which accepts and shields (Ghostnet) ctez. I updated https://ghostnet.tezmitter.com to interact with this contract. To test it, you’ll need some Ghostnet ctez. If you need someone to test transferring to, my sapling address is: zet14QD17zQZ4BBQU4EBy4XdwdpT5YUtRxtfYeSgrfBrDoLA7dRJALahefrFgQEFPp6Nf