Skip to main content

Devnet wallets and keys

Use this page only for local Devnet testing. Never use these keys, mnemonics, or patterns on mainnet, public testnets, or production systems.

What this page is for

You need Devnet keys when you test:
  • native transfers
  • mobile signing
  • gateway fulfillment
  • chain submission after a Gora result
You do not need Devnet keys just to deploy and invoke an off-chain Gora app.

Standard local developer flow

Start by resolving contract metadata from Gora:
Then build and deploy your app:
Only import a dev key into mobile when you are ready to sign a test transaction.

Base

Base Devnet uses a deterministic Ganache local chain. RPC:
Chain id:
Funded dev accounts: Use wallet 0 as sender and wallet 1 as recipient for basic transfer tests.

Solana

RPC:
Solana Devnet does not currently publish one fixed seeded wallet in the docs. The local validator has a faucet, so the normal test wallet is one you generate and fund. When gora devnet up --chains base,solana,algorand --mobile-signing true sees examples/apps/raffle-app/test-wallets/wallets.json, it also airdrops SOL to the raffle creator, operator, and participant Solana addresses listed there. If you are on the Devnet VM, create a dev-only wallet and airdrop SOL:
To fund any other Solana address:
If you are on your local computer, you can try the public RPC tunnel:
If that fails, ask the Devnet operator to create and fund a dev-only keypair on the VM, then send you the JSON keypair through a secure dev-only channel. The JSON keypair file is the wallet import artifact for local mobile signing tests. Do not commit it. Resolve program metadata with:

Algorand

RPC:
Algod auth:
Algorand Devnet creates funded wallet accounts inside the VM localnet wallet. They are regenerated when the localnet is reset, so do not hard-code addresses from an old run. When gora devnet up --chains base,solana,algorand --mobile-signing true sees examples/apps/raffle-app/test-wallets/wallets.json, it funds the raffle creator, operator, and participant Algorand addresses listed there. The VM only needs the public wallets.json for this funding step; private mnemonics stay in secrets.json for local wallet import and signing. The active funded accounts are the Wallet1, Wallet2, and Wallet3 accounts in the current localnet. The default dev-mode allocation is: If you are on the VM, list the active funded accounts:
If the network is stopped, you can still inspect the current genesis allocation:
Export a dev-only mnemonic for mobile signing tests:
Fund another Algorand address from one of the active funded localnet accounts:
If you are on your local computer, do not ask for the VM Node/ datadir. Resolve the app id from Gora:
For mobile signing tests from a local computer, ask the Devnet operator to export a dev-only Algorand mnemonic from one of the active Wallet* accounts and send it through a secure dev-only channel.

Mobile key import

For local mobile tests, the development wallet can import:
  • Base private key as hex
  • Solana keypair as JSON byte array, base58, base64, or hex
  • Algorand 25-word mnemonic, JSON byte array, base58, base64, or hex
Keep dev keys out of:
  • app source
  • gora.app.json
  • policy.json
  • fixtures
  • stdout app results
  • committed files

Example transfer intent

Your app should emit an intent or signing request, not sign directly in the runtime.
For Solana use lamports. For Algorand use microalgos. Next: Test with mobile.