# For Non-Programmable Blockchains :

<figure><img src="/files/seQW9wqMIQufA1evGFHy" alt=""><figcaption><p>Fig2. The general flow of applications on Bitcoin</p></figcaption></figure>

#### Components Involved:

1. **Fiamma:** The core network handling the verification of ZKPs.
2. **Data Availability (DA) Layer:** Stores proof-related data securely.
3. **Bitcoin:** Executes scripts to verify data and signatures.
4. **Check Contracts for Various ZKP Systems:** Includes Fflonk, Boojum, Stark, and others.

#### Steps:

#### Step 1: Proof Generation and Submission

* **ZKP Systems (Fflonk, Boojum, Stark, etc.):**
  * Various ZKPs are generated by different systems and submitted to the Fiamma network.
* **Fiamma:**
  * **Generate Schnorr Signature:** Fiamma generates a Schnorr signature which includes `data_hash`, `proof_hash`, `result`, and `new_state`.

#### Step 2: Storing Data in DA Layer

* **Fiamma to DA Layer:**
  * **Send Data:** Fiamma sends the transaction data (`txdata`), proof, and result to the DA layer for storage.
* **DA Layer:**
  * **Store Data:** The DA layer securely stores the received data ensuring its availability and integrity.

#### Step 3: Retrieving Data from DA Layer

* **DA Layer to Bitcoin:**
  * **Send Tuple Data:** The DA layer sends a tuple of data (`tuple_data{data_hash, proof_hash, result, new_state}`) to Bitcoin for further verification.
* **Bitcoin:**
  * **Check Script:** Bitcoin executes scripts to verify the data and signatures.

#### Step 4: Verification on Bitcoin

* **Bitcoin Scripts:**
  * **Check Script Execution:** The scripts on Bitcoin perform checks on `DA Check` and `Sig Check` to verify the data and signatures.
  * **Final State Update:** Once the checks are successful, the final state is updated on the Bitcoin network.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fiammalabs.io/our-product-suite/bitvm-powered-zkp-verification-layer/fiamma-architecture/general-flow/for-non-programmable-blockchains.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
