> For the complete documentation index, see [llms.txt](https://docs.orbs.network/v2-contract-sdk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.orbs.network/v2-contract-sdk/gamma-in-depth/test-keys-and-accounts.md).

# Test keys and accounts

## User accounts

When a user sends a transaction to the blockchain, the transaction needs to be signed with the user's private key. A standard user account includes the following details:

* User public key
* User private key
* User address

## Test accounts for Gamma CLI

Gamma CLI simulates transactions for testing contracts and therefore needs a set of demo user accounts.

When Gamma server is first started, Gamma CLI automatically creates 10 testing accounts and saves their details in a JSON file named `orbs-test-keys.json` in the local directory.

{% hint style="danger" %}
These keys are for testing only and should not be used in secure production environments.
{% endhint %}

Every account is assigned a textual ID, from `user1` to `user10` which can be provided as a command line argument to Gamma CLI to specify that a specific account should sign a transaction.

## Generating new test accounts

To replace the keys with a new batch of 10 accounts run in terminal

```
gamma-cli gen-test-keys
```

This will override `orbs-test-keys.json` with new data.

## Editing account details manually

The JSON format of `orbs-test-keys.json` is straightforward

{% code title="orbs-test-keys.json" %}

```javascript
  "user1": {
    "PrivateKey": "0x8fc915f55aD5c6EFA5dC9a20F14a1Ec365afa23Ed1E5eB42a7512e2977C6693D77b5D6bFDbFb44A441330d1EDcD7d654240fb6B1b5FfeDAB94695fc70576eCE1",
    "PublicKey": "0x77B5D6bFDbfb44A441330d1eDCD7d654240Fb6B1b5FfEDAb94695Fc70576eCE1",
    "Address": "0xAECf291DA35F40D161B18eA01439CE3173D31AFf"
  },
  "user2": {
    "PrivateKey": "0x09f781c591826F7c2c59905e1Ad3c735DbA4C66611f952BF11eb00f982b1644e4Be27318345a3A3dbb38aC64A603dd573d886EB22B1634B580661fd164467670",
    "PublicKey": "0x4be27318345a3A3dBb38ac64A603DD573d886eB22B1634b580661fd164467670",
    "Address": "0xD66D89bB766745943c1c87062Ca0D3587e7D926B"
  },
  "user3": {
    "PrivateKey": "0x31e9AF96EF98957B966078b3Ea7cB058bFa10282b6A20DF832d817e4302114aa150FBFb587be65E07765a075988fB49e3CeaAe034E5e731aa961fAfc1375142a",
    "PublicKey": "0x150FbfB587BE65e07765a075988fb49e3cEAAe034E5e731aA961faFc1375142a",
    "Address": "0x28E445b353BC8376FD13291583Ec55e3e6140Ec5"
  }
```

{% endcode %}

Feel free to edit the file manually and add your own accounts. "Real-life" accounts are usually created using the [Orbs Client SDK](https://github.com/orbs-network/orbs-client-sdk-go).

The fields are encoded as follows:

* Textual IDs for every account (eg. `user2`) can be changed to any string you prefer
* Key and Address fields are encoded in [Base64](https://en.wikipedia.org/wiki/Base64)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.orbs.network/v2-contract-sdk/gamma-in-depth/test-keys-and-accounts.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
