> For the complete documentation index, see [llms.txt](https://docs.fiammalabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fiammalabs.io/our-product-suite/bitvm-powered-zkp-verification-layer/fiamma-architecture/general-flow/for-non-programmable-blockchains.md).

# For Non-Programmable Blockchains :

<figure><img src="https://2784505184-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNaWxhWAPbrPeq8rIwJHB%2Fuploads%2Fhrw94hrgbeuAMeAMgjkU%2Fwhiteboard_exported_image%20(17).png?alt=media&amp;token=4b93725b-be2b-451f-9f17-566fee782922" 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.
