Skip to main content
This quickstart gets you to a running geth instance with the JSON-RPC API exposed locally. By the end you’ll be able to query the chain, create an account, and connect a wallet.

Step 1. Build the binary

If you haven’t already, follow Installation to produce build/bin/geth.

Step 2. Connect to mainnet

The first sync downloads the chain. Snap sync usually completes in a few hours on a fast machine. Verify it works:

Step 3 (alternative). Run a local devnet

For development you don’t need to sync mainnet. Run a single-node Clique network with pre-funded accounts.

Create a genesis file

Save the following as devnet.json:
Replace <SEALER_ADDRESS_NO_0X> with a 40-character hex address of the validator you’ll create in step 4.

Initialize the data directory

Start the devnet

Blocks seal every 5 seconds. The eth_blockNumber JSON-RPC call should advance.

Step 4. Create an account

Use the post-quantum keygenerator:
The output includes:
  • A 12-word mnemonic for recovery.
  • A post-quantum public key (large hex blob).
  • The derived address (20 bytes, hex).
  • A keystore file in your working directory.
Copy the keystore file into ./devnet/keystore/ so geth can unlock it. See Accounts and keys for details.

Step 5. Send a transaction

If you funded the address in alloc (or it’s the validator collecting block rewards), you can send a transaction. The simplest path is to use a wallet that supports external signing. Direct personal_sendTransaction is supported on devnets, but for production you should use Clef or Qustody.

Where to go next

Configuration

Genesis fields, geth flags, and tuning.

Accounts and keys

How post-quantum keypairs and addresses work.

Networks

Mainnet, testnets, and running a validator.

Integrate with Qustody

Use the custody platform for institutional workflows.