# Understanding Pickles at #ethamsterdam
[Pickles](https://medium.com/minaprotocol/meet-pickles-snark-enabling-smart-contract-on-coda-protocol-7ede3b54c250) is Mina's library for creating recursive snark proofs. It's working well, but it's lacking documentation and a spec.
While I'm at [ETHAmsterdam](https://amsterdam.ethglobal.com/), I'll try to
* understand the inner workings of Pickles
* share my findings and hopefully produce some useful resources for others
* start a JS implementation of Pickles, on top of [snarkyjs](https://github.com/o1-labs/snarkyjs)
The starting point is [here](https://github.com/MinaProtocol/mina/blob/69ea7a9d712cc59629d9aadd4ebb80dc5a5c169a/src/lib/pickles/pickles.ml#L408) - the OCaml entry point of Pickles' main function, `Pickles.compile`.
TODO: explain the amortization strategy for bullet proofs with the product representatino of the G polynomial

Given a, b, q, r each represented as 3 limbs like x = (x_0, x_1, x_2) where

7/6/2023See [soundness proof] for relevant context.

7/6/2023Gregor Mitscha-Baude Born 1987 Vienna, Austria Github - Twitter - Email CV Legend: blue ~ educational, red ~ professional 2007 - 2014 MSc, Mathematics, TU Vienna. Master thesis in theoretical numerical analysis.

10/21/2021
Published on ** HackMD**