# nebra upa on-premise cost summary
## TLDR
- Onchain cost (per proof):
| Batch size | L1 Gas | L2 Gas | Dollar Cost |
| -------- | -------- | -------- | ------------|
| 128 | 750 | 3924 | 0.00165 |
| 256 | 375 | 1823 | 0.00083 |
On-chain $ figures are based on assumptions of 10gwei/ L1 gas, $3500/ETH
- Offchain Proving Cost (per proof)
| Batch size | Instance |Dollar Cost |
| --------| ------------------ | -------- |
| 128 | `m6a.32xlarge` | 0.034 |
| 128 | `m6a.48xlarge` | 0.036 |
| 128 | `snarkify-1TB-4x4090` | .0041 |
| 256 | `m6a.32xlarge` | (OOM) |
| 256 | `m6a.48xlarge` | 0.044 |
| 256 | `snarkify-1TB-4x4090` | 0.0037 |
# Notes
We ran relevant prover configurations on several EC2 instances (including with GPU), as well as dedicated HW (snarkify machines) for comparison.
- All data: https://docs.google.com/spreadsheets/d/1Iprt62sEzEYZWHR4bK5Ydl42F6iCsLPw0QL3uQZChec/edit?usp=sharing
- `m6a.32xlarge` gives the cheapest per-proof off-chain proving cost
- `m6a.48xlarge` allows for large batch sizes
- Off-chain proving costs with EC2 are about $0.03395/proof for `m6a.32xlarge`, and $0.04354/proof `m6a.48xlarge`
- Use of EC2 GPU instances results in higher costs / proof
- Price drops to $0.00373/proof for large dedicated HW w/ GPU
- On-chain costs are approximately:
- about $0.00111/proof for batch size of 128
- about $0.00055/proof for batch size of 256
- (any $ value naturally relies on many assumptions)
- Total cost of ~$0.0356 / proof for `m6a.32xlarge`
- Note: calling smart contract must also compute submission id (from public inputs and circuit id). This (L2) gas is not included in the estimates above. Estimated to be about 26k L2 gas, depending on the implementation.