Skip to main content

Gora developer docs

Gora runs your app code off-chain, produces a committee-attested result, and gives wallets or contracts the information they need to act on-chain. The Gora testnet is live. You develop on your own machine with the gora CLI and deploy to the public testnet endpoint — no VM, no local chain stack, no tunnels:
There are two kinds of apps you can build today:
  1. Off-chain apps that live on Gora. Your code is deployed to the network, invoked on demand (or on a schedule), and returns signed, attested results. No smart contract required.
  2. Off-chain apps that serve smart contracts. Your contract asks for data through the Gora gateway (or your app pushes results to your contract), and Gora delivers a committee-signed callback on-chain.

Quickstart — deploy your first app in 5 minutes

Everything below runs against the live testnet endpoint https://gora-bridge.74.241.248.103.nip.io.
The starter is a real WASM app (not an empty stub): it reads your request input, keeps a per-app counter in durable state, and echoes both back — so your first invoke returns 1 … and the next 2 …. Edit src/program.wat to make it do what you want (the commented llm/http_get imports turn it into an agent or oracle — see the WASM runtime reference). The invoke response contains your app’s output, the billing settlement, and the state root before/after execution. To ship a change: edit the app, set a new version_label in gora.app.json, and run gora deploy . again. If gora deploy fails with only the current owner may publish an upgrade, someone else already owns that app id — pick a different app name. upgrade must publish a new version label means it is your app: bump version_label. Two things to know about the public testnet: (1) it runs WASM apps — JavaScript/Python are only available on a node you run yourself, because they run unsandboxed (see runtime reference). (2) Your api.token is your developer identity — the first token to deploy an app id owns it, and only that token can upgrade it, so no one can overwrite your work. It’s free to build (no GORA needed to deploy or invoke); GORA only matters for validator staking and on-chain prize/payment flows.

What to read

Safety rules

  • Gora app code returns JSON; it should not hold private keys.
  • gora deploy deploys the Gora app package, not chain contracts.
  • gora contract deploy --node <url> resolves or records chain contract metadata from the Gora node.
  • Chain execution happens through a gateway, wallet, contract, mobile signature, or submitter.
  • Testnet keys and mnemonics are for testing only. Never reuse them on mainnet.