# Try submitting a proof to UPA!

## [Option 1: Sending a demo app proof via website](https://demo-app.nebra.one)

### Pre-requisites

A browser wallet containing Sepolia ETH. We recommend using a Metamask wallet. You may fund the wallet from a faucet from <https://faucetlink.to/sepolia>.<br>

<figure><img src="https://1015642043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsgCm7MS9j55dAcAEc56c%2Fuploads%2FwdZWXobfKT6IdoK21aFi%2Fimage.png?alt=media&#x26;token=55b7f69a-3bb1-47c3-8a05-876ec238a05a" alt="" width="375"><figcaption></figcaption></figure>

### Submit a proof

Click the "Submit Proof" button to submit a proof.

* First a demo app solution and proof is generated in your browser.&#x20;
* Then the proof is submitted to UPA. You will be prompted by your wallet software to confirm this transaction. Once submission is complete, you may click the Etherscan link to view the transaction.
* While the proof is being aggregated you may click "View on nebrascan.io" to view its status in our proof explorer.<br>

  <figure><img src="https://1015642043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsgCm7MS9j55dAcAEc56c%2Fuploads%2FdlgmEKPo57BGs1qLVwjU%2Fimage.png?alt=media&#x26;token=439f7e90-a629-4434-a74a-a67ea69b8d0e" alt="" width="364"><figcaption></figcaption></figure>
* Finally, you can submit the solution to the demo app. You will be prompted by your wallet software again to confirm this transaction. Once the transaction is confirmed you may click  the link to see it on Etherscan. At this point you have completed the demo. Well done!

<figure><img src="https://1015642043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsgCm7MS9j55dAcAEc56c%2Fuploads%2FUdRTduLhIOlynmvQEwMc%2Fimage.png?alt=media&#x26;token=41f12109-8dd3-469c-ab33-c051ebca8fd8" alt="" width="364"><figcaption></figcaption></figure>

## Option 2: Sending a demo app proof via CLI

### Pre-requisites

* yarn and Node 20+. These may be installed as follows:

```bash
# nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc # Update bash terminal so we can use the command `nvm`.

# npm
nvm install 20

# yarn
corepack enable
yarn set version stable
yarn install
```

### Submit a proof

<pre class="language-bash"><code class="lang-bash"><strong>git clone git@github.com:NebraZKP/demo-app.git &#x26;&#x26; cd demo-app
</strong>
<strong># Build demo-app
</strong>yarn
yarn build
# Make sure binary is placed in .bin
yarn

# Set up demo-app commands in shell
source scripts/shell_setup.sh

# Use upa local to generate a key
upa local ethkeygen --keyfile keyfilename.key
</code></pre>

Use a faucet to fund your address with sepolia ETH. Or send a message to our Telegram:\
![](https://1015642043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsgCm7MS9j55dAcAEc56c%2Fuploads%2FyBwPJnJfkqXriOPHqKMN%2Fimage.png?alt=media\&token=26c8d9bd-5fc0-4c51-a8b9-fd305aef667a)<br>

<pre class="language-bash"><code class="lang-bash"># Submit a solution along with a proof
<strong>demo-app submit --keyfile keyfilename.key
</strong></code></pre>

The last command will print a link to the proof's status on [NEBRA's proof explorer](https://www.nebrascan.io/). Your proof should be either verified or pending verification.

## Bonus

Try integrating your own ZK app with NEBRA UPA!
