Skip to main content

Test with mobile

Use mobile when a person needs to review, approve, or sign something produced by a Gora app.

Test against the live testnet

The iOS and Android apps ship preconfigured with the live bridge:
Nothing to set up: the wallet, GORA faucet, app directory, signing, and validator screens all target the live testnet out of the box. Endpoints and deployed contract IDs are listed in Connect to the testnet. When an app deployed to the live node returns a mobile_signing_request, the node publishes it to the live bridge with POST /mobile/signing-requests. The mobile app reads the same inbox through GET /mobile/signing-requests and shows the pending request for review and signing. Quick checks against the live bridge:
There are two related flows: Neither flow gives Gora the user’s private key.

When to use mobile

Use mobile for:
  • transfers
  • wallet actions
  • smart-wallet approvals
  • gateway fulfillment signatures
  • any result that moves value or changes chain state
For pure off-chain results, mobile is optional.

App output shape

A mobile-signing app can return:
The Gora node can fill missing request metadata such as request id, app id, and timestamps before publishing to a signing surface.

Local Dev Bridge (secondary path)

Use this only when you run your own local devnet instead of the live testnet. During development, a bridge service may expose pending actions to the mobile app.
The bridge is a development helper. It is not a replacement for contract checks. gora devnet up starts the bridge by default and exposes it through your public tunnel (ngrok, Caddy, or any HTTPS tunnel works):
Gora publishes signing requests to the VM-local bridge URL. The mobile app, running on another computer, should point at your public bridge URL in the app settings instead of the preconfigured live bridge. If you start gora node serve manually, configure a signing-request sink with:
Or set one of:

What users should review

Mobile should show:
  • app name and app id
  • chain
  • sender
  • recipient
  • amount and unit
  • policy or package hash
  • attestation/result hash when available
  • risk notes
Users should reject anything unexpected.

Dev keys

For local devnet tests, import only dev-only keys:
  • Base hex private key
  • Solana JSON/base58/base64/hex keypair
  • Algorand 25-word mnemonic or raw key format
See Devnet wallets and keys. Never import production keys into a local test build.

After approval or signing

After mobile signs, the signed response still needs to be submitted or fulfilled. Common submission modes: Your contract or gateway should still verify:
  • Gora result or attestation
  • app id
  • output hash
  • user signature
  • policy limits
  • replay protection

Quick test flow (live testnet)

Only Algorand is live on the public testnet today, so use --chain algorand:
Then open the mobile app, review the pending request, and sign with a testnet key. Treat all testnet keys and funds as disposable. Next: Troubleshooting.