Task: Create New Account
If you have enabled a coin with task managed activation and are using HD Mode, your funds may be spread across a range of addresses under a specified account index. The methods below will initialise a wallet account, and scan for existing addresses with a balance.
task::create_new_account::init
Use the task::create_new_account::init method to initialise a HD account.
Arguments
| Parameter | Type | Description |
|---|---|---|
| coin | string | Ticker of coin you would like to initialise a HD account for. |
| account_id | string | Optional. If not defined, will increment to the next unused account id in the wallet. |
| scan | string | Optional. If true, will scan the account for funded addresses. Defaults to true. |
| gap_limit | string | Optional. The maximum number of empty addresses in a row. Defaults to the value provided on activation, or 20 if no value was provided. |
Response
| Parameter | Type | Description |
|---|---|---|
| task_id | integer | An identifying number which is used to query task status. |
📌 Examples
Command
POST task::create_new_account::init
{
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::create_new_account::init",
"params": {
"coin": "KMD",
"account_id": 77,
"scan": true,
"gap_limit": 20
}
} curl --url "http://127.0.0.1:7783" --data '{
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::create_new_account::init",
"params": {
"coin": "KMD",
"account_id": 77,
"scan": true,
"gap_limit": 20
}
}' import requests
import json
url = "http://127.0.0.1:7783"
payload = {
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::create_new_account::init",
"params": {
"coin": "KMD",
"account_id": 77,
"scan": true,
"gap_limit": 20
}
}
response = requests.post(url, json=payload)
print(json.dumps(response.json(), indent=2)) const payload = {
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::create_new_account::init",
"params": {
"coin": "KMD",
"account_id": 77,
"scan": true,
"gap_limit": 20
}
};
const response = await fetch("http://127.0.0.1:7783", {
method: "POST",
body: JSON.stringify(payload),
});
console.log(await response.json()); <?php
$payload = <<<'JSON'
{
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::create_new_account::init",
"params": {
"coin": "KMD",
"account_id": 77,
"scan": true,
"gap_limit": 20
}
}
JSON;
$ch = curl_init("http://127.0.0.1:7783");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = curl_exec($ch);
curl_close($ch);
echo $response; package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
payload := []byte(`{"userpass":"RPC_UserP@SSW0RD","mmrpc":"2.0","method":"task::create_new_account::init","params":{"coin":"KMD","account_id":77,"scan":true,"gap_limit":20}}`)
resp, err := http.Post("http://127.0.0.1:7783", "application/json", bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} require 'net/http'
require 'json'
require 'uri'
uri = URI("http://127.0.0.1:7783")
payload = {
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::create_new_account::init",
"params": {
"coin": "KMD",
"account_id": 77,
"scan": true,
"gap_limit": 20
}
}
response = Net::HTTP.post(uri, payload.to_json, 'Content-Type' => 'application/json')
puts JSON.pretty_generate(JSON.parse(response.body)) Show Response
Response (ready, successful)
{
"mmrpc": "2.0",
"result": {
"task_id": 6
},
"id": null
} task::create_new_account::status
Use the task::create_new_account::status method to query the status of a HD account creation task.
Arguments
| Parameter | Type | Description |
|---|---|---|
| task_id | integer | The identifying number returned when initiating the task. |
| forget_if_finished | boolean | If false, will return final response for completed tasks. Optional, defaults to true. |
Response
| Parameter | Type | Description |
|---|---|---|
| status | string | Status of the task. Ok, InProgress or Error. |
| details | string or object | If in progress, either Preparing or RequestingAccountBalance. Once complete, a standard WalletAccountInfo object. |
📌 Examples
Command
POST task::create_new_account::status
{
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::create_new_account::status",
"params": {
"task_id": 1
}
} curl --url "http://127.0.0.1:7783" --data '{
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::create_new_account::status",
"params": {
"task_id": 1
}
}' import requests
import json
url = "http://127.0.0.1:7783"
payload = {
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::create_new_account::status",
"params": {
"task_id": 1
}
}
response = requests.post(url, json=payload)
print(json.dumps(response.json(), indent=2)) const payload = {
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::create_new_account::status",
"params": {
"task_id": 1
}
};
const response = await fetch("http://127.0.0.1:7783", {
method: "POST",
body: JSON.stringify(payload),
});
console.log(await response.json()); <?php
$payload = <<<'JSON'
{
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::create_new_account::status",
"params": {
"task_id": 1
}
}
JSON;
$ch = curl_init("http://127.0.0.1:7783");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = curl_exec($ch);
curl_close($ch);
echo $response; package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
payload := []byte(`{"userpass":"RPC_UserP@SSW0RD","mmrpc":"2.0","method":"task::create_new_account::status","params":{"task_id":1}}`)
resp, err := http.Post("http://127.0.0.1:7783", "application/json", bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} require 'net/http'
require 'json'
require 'uri'
uri = URI("http://127.0.0.1:7783")
payload = {
"userpass": "RPC_UserP@SSW0RD",
"mmrpc": "2.0",
"method": "task::create_new_account::status",
"params": {
"task_id": 1
}
}
response = Net::HTTP.post(uri, payload.to_json, 'Content-Type' => 'application/json')
puts JSON.pretty_generate(JSON.parse(response.body)) Show Response
Response (ready, successful)
{
"mmrpc": "2.0",
"result": {
"status": "Ok",
"details": {
"account_index": 77,
"derivation_path": "m/44'/141'/77'",
"total_balance": {
"spendable": "7.777",
"unspendable": "0"
},
"addresses": [
{
"address": "RMsnNdVfZbxWwDxJafc6scbaN1xYVoR7Gx",
"derivation_path": "m/44'/141'/77'/0/4",
"chain": "External",
"balance": {
"spendable": "0",
"unspendable": "0"
}
},
{
"address": "R9roM4acnrrp1BL73MXd9EWdF5biRcSJ5X",
"derivation_path": "m/44'/141'/77'/0/5",
"chain": "External",
"balance": {
"spendable": "0",
"unspendable": "0"
}
},
{
"address": "RLNu8gszQ8ENUrY3VSyBS2714CNVwn1f7P",
"derivation_path": "m/44'/141'/77'/0/7",
"chain": "External",
"balance": {
"spendable": "7.777",
"unspendable": "0"
}
}
]
}
},
"id": null
}Response (in progress)
{
"mmrpc": "2.0",
"result": {
"status": "InProgress",
"details": "Preparing"
},
"id": null
}