On this page

latest contributor to this doc

Last Edit:

@gcharang

Activation Common Structures

structuresactivation_common_structures

Parameter* = requiredTypeDescription
rpc*
string
Native if running a native blockchain node, Electrum if using electrum servers or Light for ZHTLC coins.
rpc_data
object
Optional. Electrum or Light mode only. A standard ActivationRpcData object.

Defines the activation mode for QTUM, BCH, UTXO & ZHTLC coins.

{
    "mode": {
        "rpc": "Electrum",
        "rpc_data": {
            "servers": [
                {
                    "url": "electrum1.cipig.net:10020"
                },
                {
                    "url": "electrum2.cipig.net:10020"
                }
            ]
        }
    },
}

Contains information about electrum & lightwallet_d servers for coins being used in Electrum or Light mode.

Parameter* = requiredTypeDescription
gap_limit
integer
default: 20
Optional. HD wallets only. The max number of empty addresses in a row. Transactions sent to an address outside the gap_limit, will not be identified when scanning.
get_balances
boolean
default: true
Optional. If false, coin and token balances will not be returned in the response, and the response will be returned more quickly.
min_addresses_number
integer
Optional. HD wallets only. Number of addresses to generate. If not specified, addresses will be generated up to path_to_address::address_index.
mode
object
Optional. QTUM, UTXO & ZHTLC coins only. A standard ActivationMode object.
path_to_address
object
Optional. HD wallets only. A standard AddressPath object.
required_confirmations
integer
Optional. Confirmations to wait for steps in swap. Defaults to value in the coins file if not set.
requires_notarization
boolean
default: false
Optional. For dPoW protected coins, a true value will wait for transactions to be notarised when doing swaps. Overrides value if set in coins file.
scan_blocks_per_iteration
integer
default: 1000
Optional. ZHTLC coins only. Sets the number of scanned blocks per iteration during BuildingWalletDb state.
scan_interval_ms
integer
default: 0
Optional. ZHTLC coins only. Sets the interval in milliseconds between iterations of BuildingWalletDb state.
scan_policy
string
default: scan_if_new_wallet
Optional. HD wallets only. Whether or not to scan for new addresses. Select from do_not_scan, scan_if_new_wallet or scan. Note that scan will result in multple requests to the Komodo DeFi API and may take some time to complete.
tx_history
boolean
Optional. Enable transaction history scanning. When active, the Komodo DeFi Framework API will collect transaction history data for local storage, and allow use of the my_tx_history (v2) method.
zcash_params_path
string
Optional. ZHTLC coins only. Path to folder containing Zcash parameters. Defaults to standard location as defined in this guide

The ActivationParams object defines additional parameters used for activation. These params may vary depending on the coin type.

Parameter* = requiredTypeDescription
gap_limit
integer
default: 20
Optional. HD wallets only. The max number of empty addresses in a row. Transactions sent to an address outside the gap_limit, will not be identified when scanning.
get_balances
boolean
default: true
Optional. If false, coin and token balances will not be returned in the response, and the response will be returned more quickly.
min_addresses_number
integer
Optional. HD wallets only. Number of addresses to generate. If not specified, addresses will be generated up to path_to_address::address_index.
mode
object
Optional. QTUM, UTXO & ZHTLC coins only. A standard ActivationMode object.
path_to_address
object
Optional. HD wallets only. A standard AddressPath object.
required_confirmations
integer
Optional. Confirmations to wait for steps in swap. Defaults to value in the coins file if not set.
requires_notarization
boolean
default: false
Optional. For dPoW protected coins, a true value will wait for transactions to be notarised when doing swaps. Overrides value if set in coins file.
scan_blocks_per_iteration
integer
default: 1000
Optional. ZHTLC coins only. Sets the number of scanned blocks per iteration during BuildingWalletDb state.
scan_interval_ms
integer
default: 0
Optional. ZHTLC coins only. Sets the interval in milliseconds between iterations of BuildingWalletDb state.
scan_policy
string
default: scan_if_new_wallet
Optional. HD wallets only. Whether or not to scan for new addresses. Select from do_not_scan, scan_if_new_wallet or scan. Note that scan will result in multple requests to the Komodo DeFi API and may take some time to complete.
tx_history
boolean
Optional. Enable transaction history scanning. When active, the Komodo DeFi Framework API will collect transaction history data for local storage, and allow use of the my_tx_history (v2) method.
zcash_params_path
string
Optional. ZHTLC coins only. Path to folder containing Zcash parameters. Defaults to standard location as defined in this guide

For ZHTLC coins, older wallets need to set the sync_params field to a date before its first transaction to see all balance and history. This may take a long time on the first activation, but subsequent activations will be much faster. Using a smaller scan_blocks_per_iteration and larger scan_interval_ms, will reduce the average CPU load during ZHTLC coin activation (at the cost of a longer activation time). These optional fields are recommended when developing for iOS, where a high CPU load may kill the activation process. Android & desktop operating systems do not appear to have any problems with high CPU load during ZHTLC coin activation.

Contains information electrum servers for coins being used in Electrum or Light mode.

Parameter* = requiredTypeDescription
url*
string
The URL and port for an electrum server.
disable_cert_verification
boolean
default: false
Optional. If true, this disables server SSL/TLS certificate verification (e.g. for self-signed certificates). **Use at your own risk!**
protocol
string
default: TCP
Optional. Transport protocol used to connect to the server. Options: TCP or SSL
ws_url
string
Optional. WSS only. The URL and port for an electrum server's WSS port.

{
  "activation_params": {
    "mode": {
      "rpc": "Light",
      "rpc_data": {
        "electrum_servers": [
          {
            "url":"zombie.dragonhound.info:10133"
          }
        ],
        "light_wallet_d_servers": [
          "http://zombie.dragonhound.info:1443"
        ]
      },
      "sync_params": { 
          "height":  2528700
      }
    },
    "zcash_params_path": "/home/username/path_to/.zcash-params",
    "scan_blocks_per_iteration": 100,
    "scan_interval_ms": 200
  }
}

{
"activation_params": {
    "mode": {
        "rpc": "Electrum",
        "rpc_data": {
            "servers": [
                {
                    "url": "electrum2.cipig.net:10001"
                },
                {
                    "url": "electrum3.cipig.net:20001",
                    "ws_url": "electrum3.cipig.net:30001",
                    "protocol": "SSL"
                }
            ]
        }
    },
    "scan_policy": "scan_if_new_wallet",
    "priv_key_policy": {"type": "Trezor"},
    "min_addresses_number": 3,
    "gap_limit": 20
}
}

The AddressInfo object includes the following items for a given address:

Parameter* = requiredTypeDescription
derivation_method*
object
A standard DerivationMethod object
pubkey*
string
The public key associated with the seed used to launch Komodo DeFi Framework
balances
object
Optional. A standard BalanceInfo object. Not included in responses where get_balances is false
tickers
array
Optional. A list of tokens which were successfully activated. Only included in responses where get_balances is false

"bitcoincash:qrf5vpn78s7rjexrjhlwyzzeg7gw98k7t5qx64fztj": {
    "derivation_method": {
        "type": "Iguana"
    },
    "pubkey": "036879df230663db4cd083c8eeb0f293f46abc460ad3c299b0089b72e6d472202c",
    "balances": {
        "spendable": "0.11398301",
        "unspendable": "0.00001"
    }
}

"bitcoincash:qrf5vpn78s7rjexrjhlwyzzeg7gw98k7t5qx64fztj": {
    "derivation_method": {
        "type": "Iguana"
    },
    "pubkey": "036879df230663db4cd083c8eeb0f293f46abc460ad3c299b0089b72e6d472202c",
    "tickers": ["ASLP-SLP"]
}

Parameter* = requiredTypeDescription
protocol_data*
object
A standard CoinProtocolData object.
type*
integer
One of the Coin Types supported by the Komodo DeFi Framework

Parameter* = requiredTypeDescription
confirmation_targets*
object
A standard ConfirmationTargets object.
network*
string
Either mainnet or testnet
platform*
string
Indicates the platform parent coin for EMV-like protocols, or the coin used for lightning nodes.

The CoinNode object includes the following items for a given coin or token:

Parameter* = requiredTypeDescription
url*
string
URL of an RPC node
komodo_auth
boolean
default: false
Optional. Must be set to true to access RPC nodes run behind komodo-defi-proxy
{
    "url": "https://nucleus-rpc.alpha.komodo.earth",
    "komodo_proxy": true
}

The SwapV2Contracts object includes the following items for a given coin or token:

Parameter* = requiredTypeDescription
ticker*
string
Ticker of the token to be enabled
required_confirmations
integer
default: 3
Optional. How many confirmations to wait during the transaction steps of an atomic swap. Overwrites value in coins file
{
      "maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
      "taker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
      "nft_maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE"
}

Standard object structure used in token activation methods for specifying activation parameters.

Parameter* = requiredTypeDescription
required_confirmations
integer
Optional. Confirmations to wait for steps in swap. Defaults to value in coins file if not set.

The TokensRequest object includes the following items for a given coin or token:

Parameter* = requiredTypeDescription
ticker*
string
Ticker of the token to be enabled
required_confirmations
integer
default: 3
Optional. How many confirmations to wait during the transaction steps of an atomic swap. Overwrites value in coins file
{
    "ticker": "MINDS-ERC20",
    "required_confirmations": 4
}

The UtxoMergeParams object defines how often and at which thresholds to merge UTXOs. This is useful for wallets which have been used for a long time, and have many small UTXOs from mining activity.

Parameter* = requiredTypeDescription
check_every*
integer
How frequently (in blocks) the wallet UTXO count is evaluated.
max_merge_at_once*
integer
The maximum nouber of UTXOs to inlude as inputs for a merge transaction. Note that more input UTXOs means a larger transaction and greater fees, and that each blockchain has a limit to the maximum size of a transaction.
merge_at*
integer
Mamimum UTXO count before merge loop is initiated.
{
"merge_at": 50,
"check_every": 10,
"max_merge_at_once": 25
}