export const title = "Komodo DeFi SDK Common Structures: Activation";
export const description = "The Komodo DeFi SDK uses a variety of activation methods, depending on the type of coin.";
The ActivationParams
object defines additional parameters used for activation. These params may vary depending on the coin type.
Parameter |
Type |
Description |
required_confirmations |
integer |
Optional. Confirmations to wait for steps in swap. Defaults to value in the coins file if not set. |
requires_notarization |
boolean |
Optional, defaults to false . For dPoW protected coins, a true value will wait for transactions to be notarised when doing swaps. Overrides value if set in coins file. |
priv_key_policy |
string |
Defaults to ContextPrivKey . Set as Trezor to activate in Trezor mode. |
min_addresses_number |
integer |
HD wallets only. How many additional addreesses to generate at a minimum. |
scan_policy |
string |
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 SDK. |
gap_limit |
integer |
HD wallets only. The max number of empty addresses in a row. If transactions were sent to an address outside the gap_limit , they will not be identified when scanning. |
zcash_params_path |
string |
ZHTLC coins only. Path to folder containing Zcash parameters. Optional, defaults to standard location as defined in this guide |
scan_blocks_per_iteration |
integer |
ZHTLC coins only. Sets the number of scanned blocks per iteration during BuildingWalletDb state. Optional, default value is 1000. |
scan_interval_ms |
integer |
ZHTLC coins only. Sets the interval in milliseconds between iterations of BuildingWalletDb state. Optional, default value is 0. |
mode |
object |
QTUM, UTXO & ZHTLC coins only. A standard ActivationMode object. |
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.
Defines the activation mode for QTUM, BCH, UTXO & ZHTLC coins.
Parameter |
Type |
Description |
rpc |
string |
Native if running a native blockchain node, Electrum if using electrum servers or Light for ZHTLC coins. |
rpc_data |
object |
Electrum or Light mode only. A standard ActivationRpcData object. |
Contains information about electrum & lightwallet_d servers for coins being used in Electrum
or Light
mode.
Parameter |
Type |
Description |
light_wallet_d_servers |
list |
ZHTLC only. A list of urls which are hosting lightwallet_d servers for a coin. |
electrum_servers |
list of objects |
ZHTLC only. A list of standard ActivationServers objects. |
electrum |
list of objects |
QTUM, BCH & UTXO coins only. A list of standard ActivationServers objects. |
sync_params |
integer or string |
ZHTLC coins only. Optional, defaults to two days ago. Defines where to start scanning blockchain data upon initial activation. Options: "earliest" (the coin's sapling_activation_height), height (a specific block height) or date (a unix timestamp). |
`electrum` and `electrum_servers` are both used for the same purpose. This should be consolidated in the API.
Contains information electrum servers for coins being used in Electrum
or Light
mode.
Parameter |
Type |
Description |
url |
string |
The URL and port for an electrum server. |
ws_url |
string |
Optional, for WSS only. The URL and port for an electrum server's WSS port. |
protocol |
string |
Optional, defaults to TCP . Transport protocol used to connect to the server. Options: TCP or SSL |
disable_cert_verification |
boolean |
Optional, defaults to false . If true , this disables server SSL/TLS certificate verification (e.g. for self-signed certificates). Use at your own risk! |
#### ZHTLC Example
{
"activation_params": {
"mode": {
"rpc": "Light",
"rpc_data": {
"electrum_servers": [
{
"url":"zombie.dragonhound.info:10033"
}
],
"light_wallet_d_servers": [
"http://zombie.dragonhound.info:443"
]
},
"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": "Trezor",
"min_addresses_number": 3,
"gap_limit": 20
}
}
Parameter |
Type |
Description |
type |
integer |
One of the Coin Types supported by the Komodo DeFi Framework |
protocol_data |
object |
A standard CoinProtocolData object. |
Parameter |
Type |
Description |
platform |
string |
Indicates the platform parent coin for EMV-like protocols, or the coin used for lightning nodes. |
network |
string |
Either mainnet or `testnet |
confirmation_targets |
object |
A standard ConfirmationTargets object. |
The EvmNode
object includes the following items for a given coin or token:
Parameter |
Type |
Description |
url |
string |
URL of an RPC node |
gui_auth |
boolean |
Optional, defaults to false . Must be set to true to access RPC nodes run officially by the Komodo Platform team |
```json
{
"url": "http://eth1.cipig.net:8555",
"gui_auth": false
}
```
The SwapV2Contracts
object includes the following items for a given coin or token:
Parameter |
Type |
Description |
maker_swap_v2_contract |
string |
Address for the maker's new V2 swap smart contract. Must be provided if "use_trading_proto_v2"is true in mm2 configuration |
taker_swap_v2_contract |
string |
Address for the taker's new V2 swap smart contract. Must be provided if "use_trading_proto_v2"is true in mm2 configuration |
nft_maker_swap_v2_contract |
string |
Address for the maker's new V2 NFT swap smart contract. Must be provided if "use_trading_proto_v2"is true in mm2 configuration |
```json
{
"maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"taker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE",
"nft_maker_swap_v2_contract": "0x9130b257D37A52E52F21054c4DA3450c72f595CE"
}
```
The TokensRequest
object includes the following items for a given coin or token:
Parameter |
Type |
Description |
ticker |
string |
Ticker of the token to be enabled |
required_confirmations |
integer |
How many confirmations to wait during the transaction steps of an atomic swap. Overwrites value in coins file; defaults to 3 |
```json
{
"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 |
Type |
Description |
merge_at |
integer |
Mamimum UTXO count before merge loop is initiated. |
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. |
```json
{
"merge_at": 50,
"check_every": 10,
"max_merge_at_once": 25
}
```