# NEBRA L2-UPA Datasheet
> **TL;DR**
> NEBRA L2-UPA is derived from [NEBRA UPA](https://docs.nebra.one/upa-protocol-specification), a protocol deployed on Ethereum L1. NEBRA UPA L2 shared the same core contracts with NEBRA UPA, the main difference is that NEBRA L2-UPA only support off-chain proof submission via RPC, which is much less than the on-chain proof submission would cost.
## NEBRA L2-UPA Workflow

The high level workflow that World App uses NEBRA L2-UPA would be:
1. Submitter (i.e. the World App's supporting infrasctructure) submits the batched proofs and a deadline to NEBRA UPA RPC.
2. NEBRA UPA RPC returns an **Aggregatation commitment** to submitter, which contains:
- `deadline`: the confirmed deadline, which is the lastest block that the proof batch should be finalized
- `submission id`
3. NEBRA's offchain prover generates the aggregated proof, and submitted to the L2-UPA contract deployed on WorldChain.
4. The Worldcoin smart contract now can query the state of NEBRA L2-UPA contract to execute the business logic.
> NOTE: this is a simplified verison which omit the fee processing logic
## NEBRA UPA Versions and Roadmap
Below is the planned NEBRA UPA versions and planned launch time:
- **UPA v1.2/L2-UPA v1.2**: support 3 versions of Groth16 as input, i.e. SnarkJS, Gnark Groth16, Gnark Groth16 with commitment, proof aggregation uses Halo2. UPA 1.2 (on ethereum) supports both onchain and offchain (RPC) proof submission. L2-UPA v1.2 only support offchain proof submission.
- **UPA v2.0/L2-UPA v2.0** support above mentioned 3 versions of Groth16 proofs as input, as well as Plonk, Fflonk, Halo2, Honk (more to be added). UPA v2.0 uses Succinct SP1 + NEBRA customized precompiles. The final aggregated proof is Groth16.
| Version | Deployed Chain | Status |Launch Time |
| -------- | -------------- | -------|-------- |
| UPA V1.2 | Ethereum | Audited | August 7, 2024 |
| UPA V2.0 | Ethereum | Prototype done, Production WIP | September 30, 2024* |
| L2-UPA v1.2 | World Chain | Audit start in August 10 | September 10, 2024* |
| L2-UPA v2.0 | World Chain | WIP | October 10, 2024* |
> Note: * means best estimate
## L2-UPA Gas Cost
- **Projected** L2-UPA v1.2 amortized gas cost per proof and latency with different batch sizes:
| Batch size | Latency (sec) | L1 Gas | L2 Gas |
| ---------- | --------------| ------- |--------|
| 256 | 673 | 113 | 1,465 |
| 512 | 1,138 | 56 | 732 |
| 1,024 | 1,450 | 28 | 366 |
| 2,048 | 1,950 | 14 | 183 |
- **Projected** L2-UPA v2.0 amortized gas cost per proof with different batch sizes (the latency will be similar to v1.2, more details later):
| Batch size | L1 Gas | L2 Gas |
| ----------- | ------ |--------|
| 256 | 10 | 1,172 |
| 512 | 5 | 586 |
| 1,024 | 3 | 293 |
| 2,048 | 1 | 146 |
- Compare L2-UPA L1 gas cost:

- Compare L2-UPA L2 gas cost:

## Further Read
1. [NEBRA UPA L2 Design](https://hackmd.io/@nebra-one/By53jTJyA)