```{eval-rst}
.. _api-rpc-generating:
.. meta::
:title: Generating RPCs
:description: A list of all mining-related remote procedure calls in Dimecoin Core.
```
> ***We put our best effort into covering all topics related to Dimecoin. Each section will cover a different category. Not all documentation may be 100% accurate, if you spot an error, please report it or submit a PR request on GitHub.***
>
> ***REMINDER: This documentation is always evolving. If you have not been here for a while, perhaps check again. Things may have been added or updated since your last visit!***
## Generating RPCs
### Generate
The `generate` RPC mines nblocks immediately (before the RPC call returns) to an address in the wallet. Primarily used for testnet/regtest
*Parameter #1---nblocks*
Name | Type | Presence | Description
--- | --- | --- | ---
nblocks | numeric | Required
(exactly 1) | How many blocks to generate immediately.
*Parameter #2---maxtries*
Name | Type | Presence | Description
--- | --- | --- | ---
maxtries | numeric | optional | How many iterations to try (default = 1000000).
*Result---the generated blockhashes*
Name | Type | Presence | Description
--- | --- | --- | ---
`result` | object | Required
(exactly 1) | A JSON object containing the block header hash of the generated block
→
`hash` | string (hex) | Required
(exactly 1) | The hash of the header of the block generated, as hex in RPC byte order
*Example from Dimecoin Core 2.3.0.0*
```bash
dimecoin-cli -testnet generateblock "yacJKd6tRz2JSn8Wfp9GKgCbuowAEBivrA" '[]'
```
Result:
```json
{
"hash": "000000e219a3d47463fdfed6da30c999f02d7add2defb2f375549b357d3840af"
}
```
### SetGenerate
The `setgenerate` RPC turns block generation on via CPU computation.
*Parameter #1---generate*
Name | Type | Presence | Description
--- | --- | --- | ---
`generate` | bool | Required
(exactly 1) | Set to true to turn on generation, false to turn off.
*Parameter #2---genproclimit*
Name | Type | Presence | Description
--- | --- | --- | ---
`genproclimit` | numeric | optional | Set the processor limit for when generation is on. Can be -1 for unlimited.
```bash
dimecoin-cli -testnet generateblock "yacJKd6tRz2JSn8Wfp9GKgCbuowAEBivrA" '[]'
```
*Examples from Dimecoin Core 2.3.0.0*
```text
Set the generation on with a limit of one processor
> dimecoin-cli setgenerate true 1
Check the setting
> dimecoin-cli getgenerate
Turn off generation
> dimecoin-cli setgenerate false
Using json rpc
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "setgenerate", "params": [true, 1] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/
(code -1)
```
```{note}
`setgenerate` is disabled on mainnet and will only work on test networks.
```
```{seealso}
* [Generate](#generate): mines a block with a set of ordered transactions immediately to a specified address or descriptor.
* [GetMiningInfo](../api/rpc-mining.md#getmininginfo): returns various mining-related information.
* [GetBlockTemplate](../api/rpc-mining.md#getblocktemplate): gets a block template or proposal for use with mining software.
```