# Programming on Orbis

Programming on Orbis

Orbis aims to provide a developer experience largely compatible with the Cardano developer experience for writing L1 dapps. Dapp development on Cardano is based on the extended UTxO (eUTxO) model. The eUTxO model allows for architecting dapps that can scale to massive levels of throughput. Orbis will be built on an eUTxO data model that is isomorphic primarily to the data model on which Cardano is built. The core abstract data models are the same, but several differences exist.

Orbis features transaction types that are not present on Cardano and handle sending funds to Orbis from Cardano and back. Staking primitives appear in the Cardano eUTxO model but not the Orbis eUTxO model.

Another significant difference between the eUTxO model implementations of Cardano and Orbis is the representation of scripts. In Cardano, scripts are represented on-chain as Untyped Plutus Core (UPLC) bytecode. In Orbis, scripts are represented on-rollup as TinyRAM object code. By representing on-rollup scripts as TinyRAM object code instead of UPLC bytecode, Orbis will allow more efficient compilers targeting Orbis scripts. The core reason for selecting TinyRAM object code as the scripting language is that TinyRAM is amenable to efficient arithmetization. Another benefit of using TinyRAM object code as the scripting language is that TinyRAM is a suitable compilation target for all general-purpose programming languages.


---

# 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.orbisprotocol.com/orbis/smart-contracts/programming-on-orbis.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.
