zk_tcg
Question:
- I'm trying to generate a groth16 proof in the browser so that It can be verified on Sui. I've looked at the documentation that uses ark-circom, however that only works in the backend. I've tried compiling it to wasm, but the rand crate that is used by ark-circom isn't compatible. I've also tried to use the Rust sdk with ark-circom, but one of the package versions in ark-circom is not compatible with the Rust sdk. I am wondering if any of these options were possible or if it is also possible to generate a proof for sui using circomlibjs.
- I also have a question about kiosks in sui. I want the kiosk to show all of the users owned cards in a separate tab, but I am unsure about how to use the kiosk standard library.
Discussion
- Generating proofs in-browser
- Should be able to compile circom code and use proof with snark-js
- Q: Is there a utility that converts from a circom output into the format used in Move?
- Kiosks
- Want all players to list owned cards in a Kiosk format, want to randomly shuffle and place some subset into the deck without revealing which are selected
- Want to have a place to query cards from for players, basically a grouping/storage for NFTs
- Want to trade cards
- Main goal of kiosk is enforcement of policies; in practice, without trading, kiosk isn’t recommended
- Wouldn’t be ideal for a game in some cases because kiosks enforce that only owners can change objects
- Would need transferpolicy for trading NFTs
- Sui move discussion: function categories, dynamic fields
- Dynamic fields are useful in a context where you have indexed storage
Noted Areas of Improvement
- Conversion tool / documentation for converting circom to Move-native
- Best practices / guidance on when and when not to use Kiosk