Skip to main content

Gora developer docs

Gora runs your app code off-chain, produces a verifiable result, and gives wallets or contracts the information they need to act on-chain. The normal development setup is:
Devnet VM runs Gora + Dev Bridge + local chains + ngrok

Your local computer runs the Gora CLI and app code

Your app deploys to the Gora ngrok URL

Gora returns results, attestations, contract metadata, and signing requests
You do not need the VM’s chain files on your local machine. For example, a local Algorand developer should use the Gora Devnet endpoint to resolve the deployed Algorand app_id, not ask for the VM’s --datadir.

Start here

If you are the Devnet operator on the VM:
gora devnet up
This starts the local chains, the Gora dev HTTP API, the Dev Bridge, ngrok tunnels, and the contract metadata registry. If you are developing from your local computer:
gora init my-agent --template agent-mobile-signing --chain algorand --yes
cd my-agent

gora config set node.url https://gora-dev.ngrok.app
gora contract deploy --chain algorand --node https://gora-dev.ngrok.app
gora contract link --chain algorand

gora build
gora validate
gora deploy
gora invoke --app my_agent --input fixtures/request.json --wait

What to read

GoalPage
Understand the systemHow Gora apps work
Understand validators and consensusValidators and consensus
Use verifiable randomnessRandomness and VRF
Call external HTTP endpoints from an appExternal calls
Create an appCreate a Gora app
Add or resolve chain contractsAdd chain contracts
Build an app that holds value on-chainBuild an attested on-chain app
Rebuild a working reference appExamples
Configure permissions and paymentsSet policy and payments
Run the full Devnet flowDevnet quickstart
Build the three MVP app flowsCanonical Gora app flows
Deploy an existing appDeploy to Gora
Test mobile approval/signingTest with mobile
Fix common problemsTroubleshooting

The golden path

gora init my-app --template agent-mobile-signing --chain base --yes
cd my-app

gora config set node.url https://DEVNET-ENDPOINT

gora contract doctor --chain base --node https://DEVNET-ENDPOINT
gora contract deploy --chain base --node https://DEVNET-ENDPOINT
gora contract link --chain base

gora build
gora validate
gora package
gora deploy

gora invoke --app my_app --input fixtures/request.json --wait
gora inspect result <request-id>
gora inspect attestation <request-id>
gora status --app my_app

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 Gora Devnet.
  • Chain execution happens through a gateway, wallet, contract, mobile signature, or submitter.
  • Devnet keys and mnemonics are for local testing only.